请问一下,这一段代码,我新增了一列叫做二级追溯码,想将它放在三级追溯码和一级追溯码列之间,但上述代码运行时第一次查询,各列顺序正常,但是继续查询时,二级追溯码列就后移到了一级追溯码的后面,请看怎么解决;
(另外,针对dt表,我是放在构造结构的开头定义好的,在这里面直接引用)
```c#
if (Comdrug == "其他品种")//为了保证查询速度,特意采用了union all,因为不需要去重,所以减少性能开销;
{
string Sqldrugquery = @"select batchNo,parentCode,code20,boxLevel from
(select dr.batchNo as batchNo,dr.code20 as code20,dr.parentCode2 as parentCode,pro.boxLevel as boxLevel from da_codeRelation_922026600101 dr
join da_product pro on dr.resProdCode = pro.resProdCode
where dr.updateTime >= @startdate and dr.updateTime < @enddate and dr.codeLevel = 1 and dr.batchNo between @txtsbat and @txtebat -----脑血疏10*10ML; as subquery order by batchNo asc ";
SqlCommand Cmd3 = new SqlCommand(Sqldrugquery, ConnRedinfo);
Cmd3.Parameters.AddWithValue("@startdate", startdate);
Cmd3.Parameters.AddWithValue("@enddate", enddate);
Cmd3.Parameters.AddWithValue("@txtsbat", txtsbat);
Cmd3.Parameters.AddWithValue("@txtebat", txtebat);
SqlDataAdapter sda3 = new SqlDataAdapter(Cmd3);
dt.Rows.Clear();
dt.Columns.Clear();
dataGridView1.Columns.Clear();
dt.Columns.Add("序号", typeof(int));
sda3.Fill(dt);
// 为每一行设置序号
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["序号"] = i + 1;
}
dt.Columns.Add("二级追溯码", typeof(string));
dt.Columns["二级追溯码"].SetOrdinal(3);
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].HeaderText = "序号";
dataGridView1.Columns[1].HeaderText = "追溯码唯一流水号";
dataGridView1.Columns[2].HeaderText = "三级追溯码";
dataGridView1.Columns[3].HeaderText = "二级追溯码";
dataGridView1.Columns[4].HeaderText = "一级追溯码";
dataGridView1.Columns[5].HeaderText = "包装层级";
dt.Columns.Add("包含最小销售包装单元数量", typeof(int));
foreach (DataRow row in dt.Rows)
{
row["包含最小销售包装单元数量"] = 0;
}
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
```