【发布时间】:2012-01-19 10:48:02
【问题描述】:
问:
我想重命名我的数据表列名。
我试过这个:
dt.Columns[8].ColumnName = "regnum";
dt.AcceptChanges();
但是在那之后我的数据丢失了!!
【问题讨论】:
问:
我想重命名我的数据表列名。
我试过这个:
dt.Columns[8].ColumnName = "regnum";
dt.AcceptChanges();
但是在那之后我的数据丢失了!!
【问题讨论】:
dt.Columns[8].ColumnName = "regnum";
这只是将您的 Columns[8] 绑定到 Db 中不存在的“regnum”列。
如果要重命名实际 Db 列,请执行 SQL 脚本。
但我猜你实际上想更改标题:
dt.Columns[8].Caption = "regnum";
【讨论】:
(expression) (expression) ....
以下是示例:
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();
我没有发现任何数据丢失!!!!!!!!!因为它只会改变列名。
编辑
您还可以从存储过程中获取所需的列名。
【讨论】:
试试这个:
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;
}
【讨论】: