從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); } } }