Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 所有嵌入式数据库无法打开连接_.net_Sql Server_Sql Server Ce_Vistadb - Fatal编程技术网

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

.net 所有嵌入式数据库无法打开连接,.net,sql-server,sql-server-ce,vistadb,.net,Sql Server,Sql Server Ce,Vistadb,我正在开发一个需要存储数据的winforms桌面应用程序。我做了一个非常糟糕的决定,试图嵌入一个数据库。我试过: SQLite 维斯塔布 SQL Server Compact 在每种情况下,我都能够在我创建的基本模式上生成实体框架模型。我有一个事件,它添加了我用来测试这些数据库的数据 嗯,我一直在使用EF添加一条新记录,但发现它实际上并没有插入一条记录。在调试过程中,我检查了上下文对象以查看发生了什么。事实证明,它是在说“底层提供程序未能打开”,或者类似的话。它没有抛出异常,只是没有插入记录

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

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

嗯,我一直在使用EF添加一条新记录,但发现它实际上并没有插入一条记录。在调试过程中,我检查了上下文对象以查看发生了什么。事实证明,它是在说“底层提供程序未能打开”,或者类似的话。它没有抛出异常,只是没有插入记录

同样的事情也发生在所有3个嵌入式数据库上——这促使我从头脑中清醒地认识到,我的配置肯定有问题

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

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

我想可能是app.Config中的路径有问题。因此,我将连接字符串更改为:

请注意,我简化了路径,避免了使用可能有空格的任何内容,并避免了在调试目录与数据目录的预配置值不匹配时使用导致问题的数据目录。我正在运行Windows7;我想这可能是一个访问问题,所以我试着在管理员模式下运行VS2010。不走运。我还安装了SQLServerCompactSP2,认为这可能是一个bug。不走运


不管怎样,我已经准备好把头发拔出来了。这件事的最后期限很紧,我没想到要花一天的时间来弄清楚到底发生了什么事。

使用SqlCeConnection

使用SqlCeConnection

就目前情况而言,我怀疑任何人都不能回答你的问题。需要更详细的说明,因为某种原因代码没有通过。这里是连接字符串:我首先设法将VistaDB 4和5与EF代码一起使用,但我也在本地(在VistaDB 5的情况下)得到了这个“参考底图提供程序无法打开”。Vista DB支持比SQL Compact或SQLite更多的东西(包括并发写入!)就目前而言,我怀疑是否有人能回答您的问题。需要更详细的说明,因为某种原因代码没有通过。这里是连接字符串:我首先设法将VistaDB 4和5与EF代码一起使用,但我也在本地(在VistaDB 5的情况下)得到了这个“参考底图提供程序无法打开”。Vista DB支持比SQL Compact或SQLite更多的东西(包括并发写入!)好吧,这解决了它——至少在使用SqlConnection和SQLCommand时是这样。实体框架呢?有可能使用SQL Server Compact和EF吗?嗯,我还没用过。您可以检查有关SQL Server Compact 3.5 Service Pack 1联机丛书、实体框架(SQL Server Compact)的限制,以便它确实支持EF。然而,我立即注意到了一个局限性。SQL Server Compact 3.5 SP1不支持在使用EF时自动递增主键。您需要自己增加关键点。我使用了一种扩展方法来获取最新的id,并将数字递增。但是,每次我仍然必须手动赋值。好的,这解决了它——至少在使用SqlConnection和SQLCommands时是这样。实体框架呢?有可能使用SQL Server Compact和EF吗?嗯,我还没用过。您可以检查有关SQL Server Compact 3.5 Service Pack 1联机丛书、实体框架(SQL Server Compact)的限制,以便它确实支持EF。然而,我立即注意到了一个局限性。SQL Server Compact 3.5 SP1不支持在使用EF时自动递增主键。您需要自己增加关键点。我使用了一种扩展方法来获取最新的id,并将数字递增。但是,每次我仍然必须手动分配值。