c# windows,本地数据库(sql server),连接字符串无法正常工作

Posted

技术标签:

【中文标题】c# windows,本地数据库(sql server),连接字符串无法正常工作【英文标题】:c# windows, local database(sql server), connection string not working properly 【发布时间】:2013-04-16 15:17:21 【问题描述】:

这是我的连接字符串

SqlConnection conn = new SqlConnection(@"Data Source=C:\Users\admin\documents\visual studio 2010\Projects\WFA1\WFA1\database.sdf");

我从属性中复制了它,我在前面添加了@,但没有改变任何东西。在构建和运行期间没有错误。但是当我点击插入按钮时,会出现以下错误。

“与 SQL Server 建立连接时发生网络相关或实例特定错误。找不到服务器或无法访问该服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。”

我尝试编辑连接字符串并使用数据目录而不是整个路径,但发生了同样的错误,我是 .net 新手,所以我无法弄清楚可能是什么原因。我试过谷歌,但我不知道那里的解决方案是否与我的问题有关。

提前致谢!

【问题讨论】:

您是否在使用完整的 SQL Server 2008 版本(即.mdf.ldf 文件)- 或者您是否真的在使用 SQL Server Compact版本(使用*.sdf 文件)?您的问题和标签似乎相互矛盾... 【参考方案1】:

您使用了错误类型的 SQL 连接。你应该使用SqlCeConnection 类:

SqlCeConnection conn = new SqlCeConnection(@"Data Source=C:\Users\admin\documents\visual studio 2010\Projects\WFA1\WFA1\database.sdf");

Here is a really good reference for SQL CE connection strings.

【讨论】:

【参考方案2】:

SQL Server 的数据源是机器名,而不是文件名。

您应该添加对 SQL CE 程序集的引用,然后执行以下操作:

SqlCeConnection conn = new SqlCeConnection(@"Data Source=C:\Users\admin\documents\visual studio 2010\Projects\WFA1\WFA1\database.sdf");

【讨论】:

我按原样复制了连接字符串。除了在前面添加@之外,我没有做任何更改。请详细说明答案。 您可以从 .sdf 文件中看到他正在使用 MS SQL Server CE。为此,数据源一个文件名。 @Dan:是的,但是 SqlConnection 是用于 SQL Server NON-ce 的。 @Quandry 是的,但是 SqlConnection 不适用于 SDF 文件。这就是整个问题。 @Dan 是的,这正是我的意思,但显然,它必须完整地拼写出来。【参考方案3】:

对于 MSSQL Server Compact Edition,您应该使用 SqlCeConnection 类。

所以这应该有效:

SqlCeConnection sqlConnection = new SqlCeConnection(@"Data Source=C:\Users\admin\documents\visual studio 2010\Projects\WFA1\WFA1\database.sdf");

【讨论】:

【参考方案4】:

如下创建连接字符串:

在命名空间中添加using System.Data.SqlServerCe;

SqlCeConnection conn = new SqlCeConnection(@"Data Source=C:\Users\admin\documents\visual 
studio 2010\Projects\WFA1\WFA1\database.sdf; Persist Security Info=False;");

如果您的项目中有.sdf 文件,那么您可以使用:

string strConnectionString ="Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.
GetExecutingAssembly().GetName().CodeBase) + "\\database.sdf;Persist Security Info=False;";
SqlCeConnectionconn = new SqlCeConnection(strConnectionString );

【讨论】:

以上是关于c# windows,本地数据库(sql server),连接字符串无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

c# winform程序怎么连接到本地sqlserver 数据库啊

本地 SQL 和 Windows 身份验证的不同模拟

WCF / EF / SQL Server / VS2017 / C#:多层应用程序在部署到本地 IIS 10.0 作为托管服务器时出错

将 SQL Server 数据库转换为本地 C# 数据库

ASP.NET 本地 SQL Server 数据库 C# gridview 数据绑定 Visual Studio 2013

Sql-Server 配置远程连接以及C#连接字符串