数据网格视图选择,但不会更新或删除

本文关键字:更新 删除 数据网 网格 视图 选择 数据 | 更新日期: 2023-09-27 18:36:56

情况是这样的。

我在 Access 中有一个数据库,我将其迁移到 SQL Server。在Visual Studio 2012(C#)中,我用它创建了一个数据连接,名为"stanleylabs''sqlexpress.teccartHoraire.dbo"。我有很多表格和查询等等。然后,我创建了几个 DataGridViews。例如,我使用包含教师列表及其名字和姓氏的表创建了一个 DataGridView。网格视图已创建。我更改了列,以便它们的名称具有真实的句子而不是变量,并且我选中了"激活选择","激活修改","激活删除"(请记住,我使用的是法语版本的Visual Studio 2012,因此这些选项的名称可能不完全一样)。到目前为止,我还没有输入任何代码。

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

数据网格视图选择,但不会更新或删除

您必须显式更新/删除特定事件的记录。将数据源添加到数据库时,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 来查看此代码。

您需要做的是附加到某个事件,例如 FormClosed 并更新绑定到 DataGridView 的表:

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