2017年5月19日 星期五

【ADO.NET】Modify DataTable instance content

如何調整 ADO.NET 取回的 DataTable 實體內容

目標 DataTable
DataTable dt = new DataTable();
dt.Columns.Add("No", typeof(int));
dt.Columns.Add("Name");
dt.Columns.Add("Sex");

dt.Rows.Add("1", "Andy", "Male");
dt.Rows.Add("2", "Becky", "female");
dt.Rows.Add("3", "Cindy", "female");

MSDN 教的
var rows = dt.Select("Sex = 'female'");
foreach (var row in rows)
{
 row["Sex"] = "Female";
 // or row.SetField("Sex", "Female");
}
說實話我還真不知道可以這樣找,我之前都是
var rows2 = dt.Rows.Cast<DataRow>().Where(row => row["Name"].ToString().Contains("d"));
foreach (var row in rows2)
{
 row["Name"] = row["Name"].ToString().Replace("d", "D");
}

順帶一提,如果要新增來自其他 DataTable instance 的列,不能用 dt.Rows.Add() 要用
dt.ImportRow(rowFromOtherDt);

ref: SOSO2

沒有留言:

張貼留言