dataGridView更新資料庫可以分2中情況:
1 dataGridView更新資料庫自訂資料來源更新資料庫,
2 dataGridView資料來源控制項更新資料庫。
當dataGridView控制項啟用了編輯、刪除功能,你編輯了dataGridView中到列該dataGridView對應到dataset中到資料也會跟著更新但要把資料更新到資料庫還需要一些代碼到支援。
我們先說第一種情況:dataGridView更新資料庫自訂資料來源更新資料庫
1)當資料庫表有主鍵時,我們可通過全域變數dataset或者datatable,利用DataAdapter.Update()更新到資料庫。
- public partial class Form1 : Form
- {
- private DataTable DT = new DataTable();
- private SqlDataAdapter SDA = new SqlDataAdapter();
-
- public Form1()
- {
- InitializeComponent();
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
-
- SqlConnection conn = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa");
- SqlCommand SCD = new SqlCommand("select * from tables", conn);
- SDA.SelectCommand = SCD;
- SDA.Fill(DT);
- dataGridView1.DataSource = DT;
- }
-
-
- #region 使用Update更新資料庫
- private void button_save_Click(object sender, EventArgs e)
- {
- try
- {
- SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);
- SDA.Update(DT);
- }
- catch (System.Exception ex)
- {
- MessageBox.Show(ex.ToString());
- return;
- }
- MessageBox.Show("更新成功!");
- }
- #endregion
2)當資料庫表沒有主鍵時,要通過讀取dataGridView改變到資料行通過SQL語句更新資料庫(這個沒用試暫時沒有代碼)。其實每個表都應該有主鍵到,哪怕說自增的。
2 dataGridView資料來源控制項更新資料庫。
當dataGridView到資料來源是資料來源控制項控制項時,更新變到簡單多了(也需要有主鍵)。我們看到頁面底部裡有一個TableAdapter(注意這裡不是DataAdapter),該TableAdapter已經綁定CommandBuilder只須調用TableAdapter.update(ds.表名)就可以搞定。dataset也說有到,所以這個相對簡單到多。