C# DataTable 使用For和Foreach讀取每筆資料對照寫法 [適用 System.Data.SQLite.Core / Finisar.SQLite]
C# DataTable 使用For和Foreach讀取每筆資料對照寫法 [適用 System.Data.SQLite.Core / Finisar.SQLite]
資料來源: http://meowhousepro.blogspot.com/2015/09/cdatatableforforeach.html
1.for
for (int i = 0; i < dt.Rows.Count; i++) { data.pa_pc_data[i].s = dt.Rows[i]["s"].ToString(); data.pa_pc_data[i].ss = dt.Rows[i]["ss"].ToString(); data.pa_pc_data[i].Name = dt.Rows[i]["Name"].ToString(); }
2.foreach 一般不需做太特殊的處理時,可以這樣取值即可
foreach (DataRow dr in dt.Rows) { data.pa_pc_data[idx].s = dr["s"].ToString(); data.pa_pc_data[idx].ss = dr["ss"].ToString(); data.pa_pc_data[idx].Name = dr["Name"].ToString(); }
3.foreach 通常這種用法,大多用在需要取得欄位名稱的時候
foreach (DataRow dr in dt.Rows) { foreach (DataColumn dc in dt.Columns) { foreach (char na in dc.ColumnName) { Console.Write(na); } Console.Write(string.Format("{0}[{1}]: {2}", dc.ColumnName, dt.Rows.IndexOf(dr), dr[dc].ToString())); data.pa_pc_data[dt.Rows.IndexOf(dr)].s = dr[dc].ToString(); } }
——
實際Code片段:
DataTable order_dataDataTable = SQLDataTableModel.GetDataTable("SELECT order_no FROM order_data ORDER BY updated_time DESC LIMIT 0,1;"); if((order_dataDataTable!=null) && (order_dataDataTable.Rows.Count>0)) { String Strorder_noBuf = order_dataDataTable.Rows[i][0].ToString(); } else { }