2017年5月19日 星期五

【ADO.NET】Modify DataTable instance content

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

目標 DataTable
  1. DataTable dt = new DataTable();
  2. dt.Columns.Add("No", typeof(int));
  3. dt.Columns.Add("Name");
  4. dt.Columns.Add("Sex");
  5.  
  6. dt.Rows.Add("1", "Andy", "Male");
  7. dt.Rows.Add("2", "Becky", "female");
  8. dt.Rows.Add("3", "Cindy", "female");

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

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

ref: SOSO2

沒有留言:

張貼留言