2013-05-15 114 views
2

C#和VS2012的新特性。连接字符串不支持关键字:'database'

我试图连接到本地数据库连接。

下面是代码

 string selectSql = "select * from Tasks"; 
     string connectionString = "Data Source=adamssqlserver;database=master;Integrated Security=true;"; 

     using (var cn = new SqlCeConnection(connectionString)) 
     using (var cmd = new SqlCeCommand(selectSql, cn)) 
     { 
      cn.Open(); 

      using (var reader = cmd.ExecuteReader()) 
      { 

       //do something 

      } 
     } 

以下是错误

Keyword not supported: 'database'.

如果我把在初始目录第一

"Data Source=adamssqlserver;Initial Catalog=etc;"

然后错误给出了同样的消息,但对于“初始目录“。

这里是我的数据连接

enter image description here

+0

“CE”连接是否仅支持一个数据库/源或其他不可靠的东西?在*正常* SQL Server连接('SqlConnection')中,发布的两种语法都可以正常工作。 – user2246674

+1

你正在使用什么版本的SQL Server?您正在使用CE对象,但您的连接字符串似乎适用于完整的SQL服务器。 – Jason

+0

我在我的盒子上安装了SQL Server 2005,2008和2012。但我相信它使用的是SQL Server 2012,因为我给它的标题是adamssqlserver。 CE不是用于完整的SQL Server连接吗? – adam

回答

4

您使用SqlCeConnection不是SqlConnection

这个类(的SqlCeConnection )用于连接字符串的语法规则不同的Sql Compact Edition。例如:

Data Source=MyData.sdf;Persist Security Info=False; 

而不是你的连接字符串为Sql ServerSql Server Express。 所以,如果你的目标数据库是一个SQLServer数据库作为你的标签指示,那么你需要使用

using (var cn = new SqlConnection(connectionString)) 
using (var cmd = new SqlCommand(selectSql, cn)) 
{ 
    .... 
} 
+0

谢谢!我现在到了cn.Open();行,这会生成一个戏剧性的错误消息------------------------------- ----------- --------------- ----------------“建立到SQL Server的连接时发生网络相关或特定于实例的错误。验证实例名称是否正确,并且SQL Server配置为允许远程连接(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“ – adam

0

相反的数据源,尝试服务器,例如:

string connectionString = "Server=adamssqlserver;Database=master"; 
+0

This - > connectionString =“Server = adamssqlserver; Database = master; Integrated Security = true;”;给出错误消息 - >不支持的关键字:'服务器'。 – adam

+0

事实上,刚刚阅读了您的问题上发布的其他评论,我发现我错过了您使用的是CE,在这种情况下,数据源是正确的关键字,然后是“初始目录”。 – Kate

0

website包含良好的信息用于建立连接字符串。有很多选项我通常必须转到参考才能正确设置。

0

只是提醒一下:使用MS Access数据库时,您需要使用OleDbConnection和OleDbCommand,而不是SqlConnection和SqlCommand。 SqlConnection的连接字符串中的'Provider'无效AFAIK。

0

您是否缺少连接字符串部分的"。

应该

<add name="StevenTestEntities" 
connectionString="metadata=res://*/Model.TestModel.csdl|res://*/Model.TestModel.ssdl|res://*/Model.TestModel.msl; 
provider=System.Data.SqlClient; 
provider connection string=&quot;Data Source=Data Source=D000097; 
Initial Catalog=StevenTest; 
Integrated Security=True;MultipleActiveResultSets=True&qout;" 
providerName="System.Data.EntityClient" /> 

尝试了这一点。

相关问题