變更DataGridView儲存格內容,也要同時變更DataTable內容,
因此需要將整個DataGridView欄位及資料複製到DataTable。
程式範例
// foreach迴圈範例
public static DataTable DGVtoDT(DataGridView dgv)
{
DataTable dt = new DataTable ();
foreach (DataGridViewColumn col in dgv.Columns) // 循環dgv中行數量
{
DataColumn dc = new DataColumn(col.Name.ToString());
dt.Columns.Add(dc); // 加入column
}
foreach (DataGridViewRow row in dgv.Rows) // 循環dgv中列數量
{
DataRow dr = dt.NewRow();
foreach (DataGridViewCell cell in row.Cells) // 循環dgv.Rows中儲存格數量
{
dr[cell.ColumnIndex]=cell.Value; // 存入cell資料
}
dt.Rows.Add(dr); // 加入row
}
return dt;
}
// for迴圈範例
public static DataTable DGVtoDT(DataGridView dgv)
{
DataTable dt = new DataTable ();
for (int i = 0; i < dgv.Columns.Count; i++) // 循環dgv中行數量
{
DataColumn dc = new DataColumn (dgv.Columns[i].Name.ToString());
dt.Columns.Add(dc); // 加入column
}
for (int i = 0; i < dgv.Rows.Count; i++) // 循環dgv中列數量
{
DataRow dr = dt.NewRow();
for (int j = 0; j < dgv.Columns.Count; j++) // 循環dgv.Rows中儲存格數量
{
dr[j] = dgv.Rows[i].Cells[j].Value.ToString(); // 存入cell資料
}
dt.Rows.Add(dr); // 加入row
}
return dt;
}
沒有留言:
張貼留言