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




