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 数据库啊
WCF / EF / SQL Server / VS2017 / C#:多层应用程序在部署到本地 IIS 10.0 作为托管服务器时出错
ASP.NET 本地 SQL Server 数据库 C# gridview 数据绑定 Visual Studio 2013