问:
我想重命名我的数据表列名。
我试过了:
dt.Columns[8].ColumnName = "regnum";
dt.AcceptChanges();
但是之后我的数据丢失了!!
答案 0 :(得分:10)
以下是示例:
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();
我没有发现任何数据丢失!!!!!!!!因为它只会改变列名。
编辑
您还可以从存储过程中提取所需的列名。
答案 1 :(得分:9)
dt.Columns[8].ColumnName = "regnum";
这只会将您的Columns[8]
绑定到Db中不存在的“regnum”列。
如果要重命名实际的Db列,请执行SQL脚本。
但我的猜测是你真的想改变标题:
dt.Columns[8].Caption = "regnum";
答案 2 :(得分:2)
试试这个:
dataTable.Columns["ExistingColumnName"].ColumnName = "regnum";
答案 3 :(得分:0)
此代码也可以为某人服务! 我意识到这是最简单的方式,就像@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;
}