【发布时间】:2011-05-22 08:44:49
【问题描述】:
我有四个表的 MySQL 数据库,并且我已经编写了一个示例绑定方法。但是这个解决方案只适用于一张桌子。如果我绑定了多个,dataGridViews 将填充信息,但更新和删除命令效果不佳。
public void Bind(DataGridView dataGridView, string tableName)
{
string query = "SELECT * FROM " + tableName;
mySqlDataAdapter = new MySqlDataAdapter(query, conn);
mySqlCommandBuilder = new MySqlCommandBuilder(mySqlDataAdapter);
mySqlDataAdapter.UpdateCommand = mySqlCommandBuilder.GetUpdateCommand();
mySqlDataAdapter.DeleteCommand = mySqlCommandBuilder.GetDeleteCommand();
mySqlDataAdapter.InsertCommand = mySqlCommandBuilder.GetInsertCommand();
dataTable = new DataTable();
mySqlDataAdapter.Fill(dataTable);
bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
dataGridView.DataSource = bindingSource;
}
我应该为每个新表使用不同的 mySqlDataAdapter 或 mySqlCommandBuilder 吗?我使用了不同的 DataTable 和 BindingSource 对象,但是当我在一个表中插入新行时,我有一个例外,我在另一个表中留下了空字段。有针对此问题的解决方案或提示吗?
提前致谢!
【问题讨论】:
-
您不想使用数据集?或将表格列表发送到此方法?你希望代码看起来如何?你写了什么没用?
-
我想绑定我所有的表。我正在尝试 mySqlInterface.Bind(dataGridView1, "Storage"); mySqlInterface.Bind(dataGridView2, "Items");这两张表都是数据库中的信息,但是更新和删除只对Item表起作用(最后一张,我叫bind方法)。
标签: c# mysql datagridview datatable bindingsource