Как добавить новый столбец со значением в существующую таблицу DataTable?
у меня есть один DataTable с 5 столбцами и 10 строк. Теперь я хочу добавить один новый столбец в DataTable и я хочу назначить DropDownList значение для нового столбца. Таким образом, значение DropDownList должно быть добавлено 10 раз в новый столбец. Как это сделать? Примечание: без использования для цикла.
например: мой существующий DataTable выглядит так.
ID Value
----- -------
1 100
2 150
теперь я хочу добавить один новый столбец "CourseID" к этой таблице данных. У меня есть один выпадающий список. Его выбрали значение 1. Так что моя существующая таблица должна быть как ниже:
ID Value CourseID
----- ------ ----------
1 100 1
2 150 1
Как это сделать?
3 ответа:
без цикла For:
Dim newColumn As New Data.DataColumn("Foo", GetType(System.String)) newColumn.DefaultValue = "Your DropDownList value" table.Columns.Add(newColumn)
Это непроверенно. Я использовал онлайн C# инструмент преобразования:
System.Data.DataColumn newColumn = new System.Data.DataColumn("Foo", typeof(System.String)); newColumn.DefaultValue = "Your DropDownList value"; table.Columns.Add(newColumn);
добавить столбец и обновить все строки в
DataTable
, например:DataTable tbl = new DataTable(); tbl.Columns.Add(new DataColumn("ID", typeof(Int32))); tbl.Columns.Add(new DataColumn("Name", typeof(string))); for (Int32 i = 1; i <= 10; i++) { DataRow row = tbl.NewRow(); row["ID"] = i; row["Name"] = i + ". row"; tbl.Rows.Add(row); } DataColumn newCol = new DataColumn("NewColumn", typeof(string)); newCol.AllowDBNull = true; tbl.Columns.Add(newCol); foreach (DataRow row in tbl.Rows) { row["NewColumn"] = "You DropDownList value"; } //if you don't want to allow null-values' newCol.AllowDBNull = false;
//Data Table protected DataTable tblDynamic { get { return (DataTable)ViewState["tblDynamic"]; } set { ViewState["tblDynamic"] = value; } } //DynamicReport_GetUserType() function for getting data from DB System.Data.DataSet ds = manage.DynamicReport_GetUserType(); tblDynamic = ds.Tables[13]; //Add Column as "TypeName" tblDynamic.Columns.Add(new DataColumn("TypeName", typeof(string))); //fill column data against ds.Tables[13] for (int i = 0; i < tblDynamic.Rows.Count; i++) { if (tblDynamic.Rows[i]["Type"].ToString()=="A") { tblDynamic.Rows[i]["TypeName"] = "Apple"; } if (tblDynamic.Rows[i]["Type"].ToString() == "B") { tblDynamic.Rows[i]["TypeName"] = "Ball"; } if (tblDynamic.Rows[i]["Type"].ToString() == "C") { tblDynamic.Rows[i]["TypeName"] = "Cat"; } if (tblDynamic.Rows[i]["Type"].ToString() == "D") { tblDynamic.Rows[i]["TypeName"] = "Dog; } }