簡體   English   中英

如何在不丟失數據的情況下重命名數據表列名?

[英]How to rename the datatable column name without losing the data?

問:

我想重命名我的數據表列名稱。

我試過這個:

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

dt.AcceptChanges();

但是之后我的數據丟失了!!

以下是示例:

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();

我沒有發現任何數據丟失!!!!!!!! 因為它只會改變列名。

編輯

您還可以從存儲過程中提取所需的列名稱。

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

這只是將你的Columns[8]綁定到Db中不存在的“regnum”列。

如果要重命名實際的Db列,請執行SQL腳本。

但我的猜測是你真的想改變標題:

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

嘗試這個:

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

此代碼也可以為某人服務! 我意識到這是最簡單的方式就像@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;
                    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM