所有嵌入式数据库都无法打开连接

时间:2010-05-31 05:20:23

标签: .net sql-server sql-server-ce vistadb

我正在开发一个需要存储数据的winforms桌面应用程序。我做出了一个非常糟糕的决定,试图嵌入一个数据库。我试过了:

  • SQLite的
  • VistaDB的
  • SQL Server Compact

在每种情况下,我都能够在我创建的基本模式上生成实体框架模型。我有一个事件添加了我用来测试这些数据库的数据。

好吧,我一直使用EF添加一条新记录,发现它实际上没有插入记录。在调试中,我检查了上下文对象以查看发生了什么。事实证明,它是在说“基础提供商未能打开”,或者是这样的事情。它没有抛出异常,只是没有插入记录。

所有3个嵌入式数据库都发生了同样的事情 - 促使我通过我的密集头脑了解我的配置有问题。

好吧,我尝试使用sqlconnection和sqlcommand编写一些基本的sql。这一次抛出异常。在SQL Server Compact案例中,它现在说:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

我认为问题可能是app.Config中的路径。所以我将连接字符串更改为:

请注意,我简化了远离任何可能包含空格的路径,并避免在调试目录与数据目录的预配置值不匹配时使用导致问题的数据目录无意义。我正在运行Windows 7;我想也许这可能是一个访问问题 - 所以我尝试在管理员模式下运行VS 2010。没运气。我还安装了Sql Server Compact SP2,认为这可能是一个bug。没有运气。

无论如何,我已经准备好把头发拉出来了。对于这件事,我的时间紧迫,并没有想到花一天时间试图弄清楚发生了什么。

1 个答案:

答案 0 :(得分:1)

使用SqlCeConnection