无法在c#中创建连接字符串

时间:2016-04-02 15:49:20

标签: c# sql sql-server sql-server-express sqlconnection

我是C#的新手并且不太了解!

我在C#2012中创建了一个本地数据库,并希望与它建立连接。我测试了与其向导的连接,并表示已成功连接到数据库。

所以我将连接字符串地址复制到我的代码中,但运行了几秒钟后我有异常错误!

我不知道问题出在哪里!

这是我的代码:

System.Data.SqlClient.SqlConnection myConnection;

private void Form1_Load(object sender, EventArgs e)
{
    myConnection = new System.Data.SqlClient.SqlConnection();
    myConnection.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\jack\\Documents\\Visual Studio 2012\\Projects\\dictionary\\dictionary\\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30";
    myConnection.Open();

    MessageBox.Show("successfully connected!");
}

这是例外错误:

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

我的另一个问题是:SQL Server Express和C#中的本地数据库之间存在差异吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您似乎错过了\(LocalDB)之间的一个反斜杠v11.0

myConnection.ConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\jack\\Documents\\Visual Studio 2012\\Projects\\dictionary\\dictionary\\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30";

一个反斜杠将被视为转义字符,两个反斜杠\\将被视为backslash。或者,执行此操作(使用@)以使字符串字符更清晰:

myConnection.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\jack\Documents\Visual Studio 2012\Projects\dictionary\dictionary\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30";

您还可以在connectionString app.config中指定<connectionStrings> <add name="DefautConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\jack\Documents\Visual Studio 2012\Projects\dictionary\dictionary\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30;" ..等等,这种情况并不少见。