SQL Server Compact Edition 4.0:错误:26 - 找到指定的服务器/实例时出错

Uma*_*ayr 4 c# sql-server-ce

我一直在开发一个控制台应用程序(C#/ .Net Framework 4.0/VS2012).我创建了一个SQL Server Compact数据库(*.sdf)并添加了一个连接字符串:

<connectionStrings>
    <add name="Dispatcher.Properties.Settings.FakeDataSetConnectionString"
        connectionString="Data Source=|DataDirectory|\FakeDataSet.sdf"
        providerName="Microsoft.SqlServerCe.Client.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试执行以下代码时:

SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Dispatcher.Properties.Settings.FakeDataSetConnectionString"].ToString();
con.Open();
Run Code Online (Sandbox Code Playgroud)

它在con.Open()中给出以下异常:

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

  1. 我在这里做错了什么?

  2. SQL Server代理和SQL Server Browser都处于"已启动"状态.使用SQL Server Compact Edition时实际上是否重要?

mar*_*c_s 7

对于SQL Server Compact,您需要使用SqlCeConnection(不是 SqlConnection - 那是"真正的"SQL Server版本).

SqlCeConnection con = new SqlCeConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Dispatcher.Properties.Settings.FakeDataSetConnectionString"].ToString();
con.Open();
Run Code Online (Sandbox Code Playgroud)

当然,你还需要使用SqlCeCommand(而不是SqlCommand)等......

有关命名空间中所有类的更多详细信息,请参阅MSDN SQL Server联机丛书文档System.Data.SqlServerCe

  • 谢谢.这解决了我的问题.这是我第一次使用SQL Compact.^ - ^ (2认同)