7

I want to rename my DataTable column names.

I tried this:

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

dt.AcceptChanges();

but my data is lost afterwards.

jordanz
  • 367
  • 4
  • 12
Anyname Donotcare
  • 11,113
  • 66
  • 219
  • 392

4 Answers4

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

This just binds your Columns[8] to the non-existing "regnum" column in the Db.

If you want to rename the actuals Db column, execute an SQL script.

But my guess is you actually want to change the Caption:

  dt.Columns[8].Caption = "regnum";
H H
  • 263,252
  • 30
  • 330
  • 514
12

Following is the example:

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

I did not find any data loss!!!!!!!! Because it will merely change the column name.

EDIT

You can also bring your desired column names from your Stored Procedures.

Pankaj
  • 9,749
  • 32
  • 139
  • 283
4

Try this:

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

Also may this code serve someone! I have a realize that this is the easiest way just like @Henk said:

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;
                    }
PatsonLeaner
  • 1,230
  • 15
  • 26