0

在我的应用程序中,我有一个按钮,它将使用一个选择命令来填充我的数据表,这个数据表是与 datagridview 的源绑定。

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

我怎样才能使这项工作,以便用户可以更新数据表并将其写回mysql。

4

1 回答 1

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 仅适用于仅涉及单个表的选择查询 - 不允许连接)

于 2013-09-02T22:26:54.437 回答