![](/img/trans.png)
[英]How to Change the Column Name in Datatable in C# without losing column data?
[英]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.