SQL Compact Edition,无法连接到本地 sdf 文件
Posted
技术标签:
【中文标题】SQL Compact Edition,无法连接到本地 sdf 文件【英文标题】:SQL Compact Edition, Unable to connect to local sdf file 【发布时间】:2011-07-08 08:08:36 【问题描述】:我的本地目录 C:\myDatabase.sdf 中有一个 .sdf 文件
在 Visual Studio 2010 asp.NET 中,我添加了表和值等。我现在有一个页面,我需要在 Default.aspx.cs 页面上连接到本地数据库。
我的代码是:
SqlConnection conn = new SqlConnection("Data Source=C:\\myDatabase.sdf;");
conn.Open();
代码在尝试运行 conn.Open(); 时失败;调试器说无法连接。这是错误:
“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否已配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)"
现在在连接字符串中,我几乎尝试了所有方法!我尝试添加数据库名称、用户名、密码、server=localhost、mode=exclusive 等等。它仍然不起作用......我无法弄清楚。我不认为我没有安装 SQL Server。我只有 Visual Studio 2010 和一个 sdf 文件。
我认为它试图连接到服务器...但是数据库文件是本地的?我不明白。 “服务器=本地主机”没有工作。我不知道如何检查该文件是否允许远程连接,因为我不知道如何在 Visual Studio 中访问该文件!
谁能告诉我发生了什么事!
【问题讨论】:
您是否尝试使用 SQL Management Studio 连接到 sdf? 不,我没有,我不相信我有管理工作室:s 但检查不好。我不明白的是,当我通过 Visual Studio 连接到 sdf 文件时,它连接正常,没问题。在属性中,它给了我它用来连接的连接字符串。所以我完全复制了它(添加了反斜杠),它仍然没有工作 【参考方案1】:您使用了错误的 API。 SqlConnection 是 System.Data.SqlClient 的一部分,用于访问运行 SQL Server 的数据库。要访问 Sql Server Compact db,您必须使用 System.Data.SqlServerCe。您可能必须引用一个 dll 才能访问此命名空间。
【讨论】:
非常感谢,这似乎合乎逻辑。但我是一个asp c# newb。我如何引用一个dll?我设法找到了 dll 的路径 请阅读 MSDN 文档,它明确提到命名空间是程序集 System.Data.SqlServerCe.dll msdn.microsoft.com/en-us/library/wkze6zky.aspx 的一部分 我添加了 dll,没问题:) 添加了命名空间,更改了我的代码。一切看起来都很完美!然后在编译时,它在运行时错误中说“SQL Server Compact 不适用于 ASP.NET 开发。” 我猜你正在使用 .Net msdn.microsoft.com/en-us/library/…【参考方案2】:请尝试使用 SqlCeConnection 而不是 SqlConnection。
http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection(v=VS.100).aspx
【讨论】:
以上是关于SQL Compact Edition,无法连接到本地 sdf 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 F# 中的类型提供程序连接到 SQL Server Compact Edition 4.0?
SQL Server Compact Edition(从外部连接连接)
SQL Server Compact Edition 和 SQL Server 2008 Management Studio