DataGridView选择,但不会更新或删除

时间:2013-10-26 19:30:08

标签: c# sql datagridview

情况就是这样。

我在Access中有一个迁移到SQL Server的数据库。从Visual Studio 2012(C#),我用它创建了一个数据连接,名为“stanleylabs \ sqlexpress.teccartHoraire.dbo”。我有很多表和查询等。然后我创建了几个DataGridViews。例如,我使用具有教师列表的表创建了一个DataGridView,其中包含名字和姓氏。 GridView已创建。我改变了列,所以他们会有真正的句子而不是变量作为他们的名字,我选中了“激活选择”,“激活修改”,“激活删除”(请记住,我使用的是法语版的Visual Studio 2012,所以这些选项可能没有完全相同的名称)。我还没有输入任何代码。

尽管已经检查了所有这些选项,但DataGridView虽然看起来允许我删除行并在表中添加数据,但却无法保存它们。当我执行时,我能够添加或删除或修改,但是说我离开应用程序或只是窗口,我所做的不会在数据库中更新。有人可以帮我解决这个问题吗?我搜索了解决方案但找不到任何东西......

1 个答案:

答案 0 :(得分:0)

您必须明确更新/删除特定事件的记录。将数据源添加到数据库时,Visual Studio会为FormLoad事件创建一个事件处理程序,并添加一行代码,从数据库中加载表中的所有记录,类似于:

    private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'yourDataSet.SalesOrderHeader' table. You can move, or remove it, as needed.
        this.salesOrderHeaderTableAdapter.Fill(this.yourDataSet.SalesOrderHeader);
    }

您可以在编辑表单时按F7查看此代码。

您需要做的是附加到某个事件,让我们说FormClosing并更新绑定到DataGridView的表:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        this.salesOrderHeaderTableAdapter.Update(this.yourDataSet.SalesOrderHeader);
    }
相关问题