Winforms 如何使用dataset、tablemanager和bindingsource更新数据库?

Winforms 如何使用dataset、tablemanager和bindingsource更新数据库?,winforms,dataset,Winforms,Dataset,这是一个非常小的程序,所以我只使用了数据源的自动生成代码,并在WinForm上拖放了一个datagridview。我试图手动更新一行中的一列,但每次我访问tablemanager的“UpdateAll”时都会失败。以下是我双击单元格内容的代码: private void dgv1DataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { try

这是一个非常小的程序,所以我只使用了数据源的自动生成代码,并在WinForm上拖放了一个datagridview。我试图手动更新一行中的一列,但每次我访问tablemanager的“UpdateAll”时都会失败。以下是我双击单元格内容的代码:

    private void dgv1DataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            string delMemberID = dgv1DataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
            ds1DataSet.Table1.Rows[ds1DataSet.Table1.Rows.IndexOf(ds1DataSet.Table1.FindByMemberID(delMemberID))][9] = MemberID.ToString();
            this.Validate();
            this.bs1BindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.ds1DataSet);
            MessageBox.Show("Replacement Successful");
            this.Close();
        }
        catch
        {
            MessageBox.Show("Replacement Failed");
        }
    }

我的期望是;当用户双击datagridview行内的任意位置时,它将使用该列的不同“MemberID”更新该行,在所有位置保存数据(包括数据库),然后关闭表单(以返回父表单)。

出于某种原因,我的tableAdapterManager没有链接到该表单上的TableAdapter——一旦我链接了它们,上面的代码就可以正常工作了

更准确地说,我单击了表单的设计视图,并单击了设计窗口底部的tableAdapterManager。然后在“属性”窗口中,我注意到TableAdapter是空的(如果您使用向导创建数据源,那么它的名称将与数据源中的表相同)。一旦我为TableAdapter选择了正确的名称,一切都很顺利