0

我正在构建 WinForms 应用程序,并且正在使用 SQL Server Compact Edition 3.5。

每当我运行 WinForms 应用程序并且之后在 Visual Studio 中打开查询编辑器时,我运行的任何更新查询都不会反映在应用程序中。如果我运行Select查询以查看更新的记录,我可以从查询结果中看到数据已更改但未反映在应用程序中。

如果我关闭应用程序并再次运行它,更新会反映在应用程序中。

这是正常的吗?对此最好的解释是什么?

更新

来自 C#

string sqlceConnString = @"Data Source=|DataDirectory|\medicstores.sdf";

从 Visual Studio 中的新查询连接窗口

C:\Users\user12345\...\Visual Studio 2010\Projects\StockPro\StockProFormUI\medicstores.sdf

更新

我认为这可能是由于应用程序复制了数据库文件\StockPro\StockProFormUI\bin\Debug\medicstores.sdf而不是使用\StockPro\StockProFormUI\medicstores.sdf.

我认为|DataDirectory|是由应用程序解决\StockPro\StockProFormUI\bin\Debug\medicstores.sdf的,这使它成为物理文件的新副本,\StockPro\StockProFormUI\medicstores.sdf因此它们不一样

4

1 回答 1

2

首先检查你的连接字符串。

断开服务器资源管理器上的 SQL CE 数据库。

我之前也遇到过这个问题。您需要获取 sqlce 数据库的确切位置,然后更改连接字符串。

首先对其进行测试以将 sqlce 放在驱动器 c:\ 上并添加 Persist Security Info=False; 最后。并使用准确的数据库文件路径。

private SqlCeConnection conn = new SqlCeConnection("Data Source=C:\\medicstores.sdf;Persist Security Info=False;"); 

您可以使用 SQL CE 工具来查看您的 SQLCE 数据库,而不是使用 Visual Studio。

SQL Server CE 查询工具 - 代码项目

问候

于 2012-07-18T23:04:02.907 回答