從MySqlCommandBuilder這個類別內的方法看來,除了新增修改也可以做到刪除的行為,開發者不需要自己去輸入MySQL語法
MySQLAdapter應該是透過BindingSource去取得更新或修改過後的DataSet
執行修改前資料如下:
執行修改後資料如下:
執行新增後資料如下:
在執行時,如果你遇到向下圖這樣的狀況
有可能為以下幾種狀況:
- 資料表沒有主鍵
 - 多張資料表串在一起
 - MySqlCommandBuilder沒有將橋接指派給它
 
程式碼如下:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data;
namespace Sample
{
    public partial class Form1 : Form
    {
        private MySqlConnection _conn;
        private MySqlDataAdapter _adapter;
        private DataSet _set;
        private readonly string CONN_STR = "server={0};uid={1};pwd={2};database={3};charset={4};";
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            _conn = new MySqlConnection(string.Format(CONN_STR, "host", "account", "password", "database", "charset"));
            _conn.Open();
            _adapter = new MySqlDataAdapter("SELECT a,b,c FROM abc;", _conn);
            _set = new DataSet();
            _adapter.Fill(_set);
            dataGridView1.DataSource = _set.Tables[0];
            _conn.Close();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MySqlCommandBuilder _cb = new MySqlCommandBuilder(_adapter);
            _adapter.Update(_set);
        }
    }
}




