如何使用 TableAdapter 进行更新?
Posted
技术标签:
【中文标题】如何使用 TableAdapter 进行更新?【英文标题】:How to update with TableAdapter? 【发布时间】:2013-01-12 11:06:45 【问题描述】:我正在WindowsApplication
中编写一个使用数据库的程序。
我用DataGridView
显示数据库值。
目前,我希望有可能通过DataGridView
更新数据库,因此我写了这段代码:
private void MainForm_Load(object sender, EventArgs e)
// TODO: This line of code loads data into the 'databaseDataSet1.products' table. You can move, or remove it, as needed.
this.productsTableAdapter1.Fill(this.databaseDataSet1.products);
private void upButton1_Click(object sender, EventArgs e)
this.productsTableAdapter1.Update(this.databaseDataSet1.products);
MessageBox.Show("הנתונים עודכנו בהצלחה!");
问题是没有将值更新到数据库中。
如果有人能帮我解决这个问题,我会很高兴,或者更好地解释如何使用DataGridView
,因为我在互联网上没有找到任何有用的东西。
【问题讨论】:
【参考方案1】: this.Validate();
this.productsBindingSource.EndEdit();
this.productsTableAdapter1.Update(this.databaseDataSet1.products);
//this.productsTableAdapter1.UpdateAll(this.databaseDataSet1);
【讨论】:
【参考方案2】:假设您使用 DataTable
和 DataAdapter
填充 datagridview,您可以执行以下操作:
private void SaveChanges()
try
if (sqlDataAdapter != null && dataTable.GetChanges() != null)
sqlDataAdapter.Update(dataTable);
catch (Exception exception)
MessageBox.Show(exception.Message);
这将根据您的 DataTable 自动生成更新数据库所需的任何插入、更新或删除语句
【讨论】:
【参考方案3】:您应该将 datagridview 绑定到 DataTable 或 BindingList 对象,因为它们是可观察的。
【讨论】:
你说我需要“绑定datagridview...”是什么意思? 你这样写:dataGridView1.DataSource = dTable;其中 dTable 是 DataTable() 的一个实例。现在您只需要修改数据表,它就会反映在数据网格视图中。【参考方案4】:try
this.Validate();
this.customersBindingSource.EndEdit();
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
catch (System.Exception ex)
MessageBox.Show("Update failed");
【讨论】:
以上是关于如何使用 TableAdapter 进行更新?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 TableAdapter 配置向导的 SQL 语句中使用等宽字体?
使用 DataSet 更新 TableAdapter - 更新需要有效的 DeleteCommand 错误
Datagridview 更新到多个表而不使用 bindingsource 或 tableadapter
在 vb.net 中使用 tableadapter 更新旧数据并添加新数据
使用带有 SqlCommandBuilder 的 TableAdapter 和导出到 DataTable 的工作表来更新 SQL 数据库表