C# DataTable 使用For和Foreach讀取每筆資料對照寫法 [適用 System.Data.SQLite.Core / Finisar.SQLite]

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
                        {

                        }

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *