1

所以我一直在关注这个 SQL Server CE 的伟大指南: http ://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

对于 WinForms 而不是 ASP.NET。我已经将我绑定datagridview到本地数据库源,并且可以很好地查看我的虚拟信息。

问题是当我尝试写回表格或修改现有单元格的内容时。我无法保存更改。如何写回表?喜欢之后我需要一个活动CellEndEdit吗?在另一个网站上是否有一些很好的例子可以做到这一点?

表单加载事件只包含这个来加载,datagridview所以我不确定它是否真的“绑定”。

this.productsTableAdapter.Fill(this.testDBDataSet2.Products);
4

3 回答 3

1

刚刚处理了一个类似的问题,我学到了一些东西。首先,在验证单元格之前,您对 DataGridView 所做的更改不会提交到数据库。使用数据绑定的 DataGridView,单元格在行级别进行验证,并且在您将焦点从正在编辑的行上移开之前,除非您使用 CellChangeEvent 强制验证行,否则不会提交更改类似于以下内容:

    if (e.ColumnIndex > 9 && e.RowIndex >= 0)
    {
        if (dataGridView.Rows[e.RowIndex].Cells[0].Value is DBNull)
        {
            //do nothing
        }
        else
        {
            this.Validate();
        }
    }

如果您尝试让 dataGridView 显示您对底层数据库所做的更改,则需要刷新表适配器,如上所述。但是,如果您在提交更改之前执行填充,您将丢失所做的更改。

于 2012-09-03T20:37:16.517 回答
0

哇,我们在这里: productsTableAdapter.Update(testDBDataSet2);

于 2012-07-19T01:26:53.113 回答
0

这通常发生在您使用开发环境时。当您使用 SQLCE 时,您可能已经在项目中创建了 db 文件。Visual Studio 还将在 bin 文件夹中复制您的数据库。现在,您所做的任何数据库事务都会影响驻留在 bin 文件夹中的本地数据库副本。因此,请尝试使用 SQL Management Studio 或 Visual Studio 附加该 bin 数据库。这将毫无疑问地显示您最近插入的数据。

于 2012-07-19T05:09:13.000 回答