在我的应用程序中,我有一个按钮,该按钮将使用选择命令来填充我的数据表,该数据表被源绑定到datagridview。
我想要实现的是以下内容,我想要第二个“更新”按钮来回写在datagrid视图中所做的更改(行编辑,行删除),我在MySqlCommandBuilder上找到了一些信息,但无法使其正常工作
我该如何进行这项工作,以便用户可以更新数据表并将其写回到mysql。
最佳答案
最初填充数据表后,您使用了名为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;
现在,您更改了datagrid来修改,添加或删除行,并且您对datagrid所做的每个更改都反映在基础数据源(数据表)上。如果要更新数据库上的记录,则需要保留MySqlDataAdapter (作为表单内的全局变量),并在需要时调用适配器实例的Update方法
BindingSource bs = dgview.DataSource As BindingSource;
adapter.Update(bs.DataSource as DataTable);
该调用将使用由MySqlCommandBuilder创建的MySqlCommand类的实例来更新数据库(请注意,MySqlCommandBuilder仅适用于仅涉及单个表的选择查询-不允许联接)
关于c# - 将数据表更新回mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18581410/