将数据表更新回mysql

时间:2013-09-02 22:10:10

标签: c# mysql winforms

在我的应用程序中,我有一个按钮,它将使用select命令填充我的数据表,这个数据表是databridview的sourcebind。

我想要实现的是以下内容,我想要第二个“更新”按钮来回写在数据网格视图中进行的更改(行编辑,行删除),我在MySqlCommandBuilder上找到了一些信息但是无法实现工作MySqlCommandBuilder

如何使这项工作,所以用户可以更新数据表并将其写回mysql。

1 个答案:

答案 0 :(得分:2)

当您最初填充数据表时,您已使用名为MySqlDataAdapter的对象实例,其代码可能类似于此

string query = "SELECT * FROM yourTableName";
MySqlDataAdapter adapter = new MySqlDataAdapter(query, connString);
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);
DataTable dt = new DataTable();
adapter.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
dgview.DataSource = bs;

现在,您更改了数据网格修改,添加或删除行,并且您对数据网格所做的每个更改都反映在基础数据源(数据表)上,如果要更新数据库上的记录,则需要保留MySqlDataAdapter(作为表单中的全局变量)并在需要时调用适配器实例的Update方法

BindingSource bs = dgview.DataSource As BindingSource;
adapter.Update(bs.DataSource as DataTable);

此调用将使用MySqlCommandBuilder创建的MySqlCommand类的实例来更新数据库(请记住,MySqlCommandBuilder仅适用于仅涉及单个表的select查询 - 不允许连接)