我正在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
,因为我没有在互联网上找到任何有用的东西。
答案 0 :(得分:2)
this.Validate();
this.productsBindingSource.EndEdit();
this.productsTableAdapter1.Update(this.databaseDataSet1.products);
//this.productsTableAdapter1.UpdateAll(this.databaseDataSet1);
答案 1 :(得分:0)
您应该将datagridview绑定到DataTable或BindingList对象,因为它们是可观察的。
答案 2 :(得分:0)
假设您使用DataTable
和DataAdapter
填充数据网格视图,您可以执行以下操作:
private void SaveChanges()
{
try
{
if (sqlDataAdapter != null && dataTable.GetChanges() != null)
sqlDataAdapter.Update(dataTable);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
这将根据您的DataTable自动生成更新数据库所需的任何插入,更新或删除语句
答案 3 :(得分:0)
try
{
this.Validate();
this.customersBindingSource.EndEdit();
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}