【发布时间】:2012-08-25 15:36:56
【问题描述】:
我正在尝试更新 SQL 表中的单个记录。所以,我有该表的DataGridView 视图,当在表中选择了某些行并单击更新按钮时,将打开新的更新Form。
主窗体将DataRow 行参数传递给新的Form,当更新结束时,行返回主窗体。 Main Form 中的代码示例大概是这样的:
private void btnUpdateUser_Click(object sender, EventArgs e)
{
//Some code to extract DataRow
FormUpdateUsers updateUser = new FormUpdateUsers(row, new Action<DataRow>(onUserUpdated));
updateUser.Show();
}
当更新表单完成更新时,它会调用动作并将行返回给主表单,如下所示。
public partial class FormUpdateUsers : Form
{
private DataRow row;
private Action<DataRow> action;
public FormUpdateUsers(DataRow row, Action<DataRow> action)
{
InitializeComponent();
this.row = row;
this.action = action;
}
private void btnConfirm_Click(object sender, EventArgs e)
{
//Some code for updatin a database
action.Invoke(row);
}
}
问题是,如何将返回的行晒到DataGridView 并替换过时的行?有什么建议吗?
private void onUserUpdated(DataRow row)
{
// Update DataGridView?
}
【问题讨论】:
-
两个问题:如何获得传递给第二个表单的行,以及直接更新原始数据是否适合您?如果您只是将数据行传递给第二个表单,然后对其进行更新,则不需要将其传回 - 因为您正在处理同一个对象,所以数据表将自动更新。
标签: c# sql-server datagridview ado.net datarow