峰峦@叠嶂 2025-03-18 11:28 采纳率: 98%
浏览 3
已结题

要将新增列,插入到合适的位置

请问一下,这一段代码,我新增了一列叫做二级追溯码,想将它放在三级追溯码和一级追溯码列之间,但上述代码运行时第一次查询,各列顺序正常,但是继续查询时,二级追溯码列就后移到了一级追溯码的后面,请看怎么解决;
(另外,针对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;

} 

```

  • 写回答

5条回答 默认 最新

  • 峰峦@叠嶂 2025-03-18 13:18
    关注

    需要用到Displayindex属性,只要将新增列,在headtext后面,再设置为Displayindex即可;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月18日