Winforms 将从Datagridview输入的新记录保存到数据库中
我使用DataSet和TableAdapter来填充Datagridview。Datagridview允许在底部插入新记录。现在,当我在Datagridview中输入新记录的值时,该记录不会自动保存回数据库。要将新记录保存回数据库,您需要处理哪个事件,或者需要编写什么代码Winforms 将从Datagridview输入的新记录保存到数据库中,winforms,c#-4.0,datagridview,dataset,datatableadapters,Winforms,C# 4.0,Datagridview,Dataset,Datatableadapters,我使用DataSet和TableAdapter来填充Datagridview。Datagridview允许在底部插入新记录。现在,当我在Datagridview中输入新记录的值时,该记录不会自动保存回数据库。要将新记录保存回数据库,您需要处理哪个事件,或者需要编写什么代码 我使用的是C#。您可以在某处放置一个保存按钮,当用户单击该按钮时,您可以调用如下方法: private void UpdateDataSet(DataSet dataSet) { // Check for change
我使用的是C#。您可以在某处放置一个保存按钮,当用户单击该按钮时,您可以调用如下方法:
private void UpdateDataSet(DataSet dataSet)
{
// Check for changes with the HasChanges method first.
if(!dataSet.HasChanges(DataRowState.Modified)) return;
// Create temporary DataSet variable and
// GetChanges for modified rows only.
DataSet tempDataSet =
dataSet.GetChanges(DataRowState.Modified);
// Check the DataSet for errors.
if(tempDataSet.HasErrors)
{
// Insert code to resolve errors.
}
// After fixing errors, update the data source with
// the DataAdapter used to create the DataSet.
adapter.Update(tempDataSet);
}
您正在调用
TableAdapter
上的Update()
方法吗?以下代码来自
有很多地方可以放置这种逻辑——正如Davide Piras建议的那样,表单上可以有一个保存按钮,或者如果希望在输入每一行时保存数据,则可以使用RowValidated事件处理程序保存逻辑。是否用代码填充gridview(如果是,请发布它)还是使用数据源?Windows窗体还是Web窗体?能否显示用于将数据绑定到网格的代码?我使用TableAdapter及其windows窗体应用程序填充DataGridView。
try
{
this.Validate();
this.customersBindingSource.EndEdit();
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}