我是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#中的本地数据库之间存在差异吗?
谢谢
答案 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;"
..等等,这种情况并不少见。