【问题标题】:How to rename the datatable column name without losing the data?如何在不丢失数据的情况下重命名数据表列名?
【发布时间】:2012-01-19 10:48:02
【问题描述】:

问:

我想重命名我的数据表列名。

我试过这个:

dt.Columns[8].ColumnName = "regnum";

dt.AcceptChanges();

但是在那之后我的数据丢失了!!

【问题讨论】:

    标签: c# asp.net linq datatable


    【解决方案1】:
    dt.Columns[8].ColumnName = "regnum";
    

    这只是将您的 Columns[8] 绑定到 Db 中不存在的“regnum”列。

    如果要重命名实际 Db 列,请执行 SQL 脚本。

    但我猜你实际上想更改标题:

      dt.Columns[8].Caption = "regnum";
    

    【讨论】:

    • hmmmm,它是一个存储过程,它返回没有特定名称的数据:像这样(expression) (expression) ....
    • 拜托,你能解释一下你想说什么吗?
    【解决方案2】:

    以下是示例:

    DataTable Dt = new DataTable();
    DataColumn Dc = new DataColumn("Name");
    DataColumn Dc1 = new DataColumn("ID");
    Dt.Columns.Add(Dc);
    Dt.Columns.Add(Dc1);
    
    DataRow dr = Dt.NewRow();
    dr["name"] = "1";
    dr["ID"] = "111";
    Dt.Rows.Add(dr);
    
    dr = Dt.NewRow();
    dr["name"] = "2";
    dr["ID"] = "11112";
    Dt.Rows.Add(dr);
    
    Dt.Columns[0].ColumnName = "ddsxsd";
    Dt.AcceptChanges();
    

    我没有发现任何数据丢失!!!!!!!!!因为它只会改变列名。

    编辑

    您还可以从存储过程中获取所需的列名。

    【讨论】:

      【解决方案3】:

      试试这个:

       dataTable.Columns["ExistingColumnName"].ColumnName = "regnum";
      

      【讨论】:

        【解决方案4】:

        也可以此代码为某人服务! 我意识到这是最简单的方法,就像@Henk 所说:

        using (SqlDataAdapter da = new SqlDataAdapter())
                            {
                                DataTable dt = new DataTable();
                                cmd.CommandType = CommandType.Text;
                                cmd.Connection = con;
                                da.SelectCommand = cmd;
                                da.Fill(dt);
                                dt.Columns[0].ColumnName = "Item NO";
                                dt.Columns[1].ColumnName = "LocalCode";                       
                                dt.Columns[2].ColumnName = "Currency";
                                dt.Columns[3].ColumnName = "Menu Flag";
                                dt.Columns[4].ColumnName = "Item Class";
                                dt.Columns[4].ColumnName = "Dress Sort";
                                return dt;
                            }
        

        【讨论】:

          猜你喜欢
          • 2023-03-17
          • 2018-03-18
          • 1970-01-01
          • 1970-01-01
          • 2017-04-07
          • 1970-01-01
          • 2023-02-10
          • 2021-10-16
          相关资源
          最近更新 更多