2016-04-02 31 views
1

我是C#的新手,不太了解!无法在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!"); 
} 

这是异常错误:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

而我的另一个问题是:是它的SQL Server Express和C#本地数据库之间的区别是什么?

谢谢

回答

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;" ..等等这并不少见。

+0

哦谢谢伊恩。我认为双反斜线只是为了地址! – Saeid

+0

它现在的作品:)是本地数据库和sql express之间的区别吗? – Saeid

+0

@Saeid本地数据库意味着您的连接是到本地机器(您正在使用的PC)。 SQL Express是数据库的名称,而不是承载数据库的机器。其实全名是'SQL Server Express',数据库名称是'SQL Server' – Ian