SQL數(shù)據(jù)庫實例名稱找不到或遠程連接失敗并顯示錯誤error40的原因及解決辦法
分享由字符“\”轉(zhuǎn)義引起的SQL數(shù)據(jù)庫實例名稱找不到或遠程連接失敗并顯示錯誤error40的解決辦法:
一、問題介紹
很久沒有用c#去連數(shù)據(jù)庫程序了,不過在網(wǎng)上找了一些資料,基本上還是寫出來了,但是調(diào)試初步完成的程序時候,卻發(fā)現(xiàn)在con.open()這個方法總是出錯,說找不到數(shù)據(jù)庫實例名稱,或者遠程連接失敗,顯示的錯誤是error40。
錯誤如下:
二、環(huán)境介紹
1、我的數(shù)據(jù)庫是sqlserver2008,使用的開發(fā)環(huán)境是vs2013,.net4.0
2、我的數(shù)據(jù)庫安裝采用的命名實例,所以在編寫數(shù)據(jù)庫連接字符串的時候的服務器名稱應為 【計算機名\數(shù)據(jù)實例名】
數(shù)據(jù)庫連接字符為:
當發(fā)現(xiàn)連接錯誤之后,我以為是我的sql2008和vs2013環(huán)境不對而導致的錯誤,之后把以前的項目打開,把數(shù)據(jù)庫附加上,更改一下數(shù)據(jù)連接字符串,發(fā)現(xiàn)錯誤是一樣的。
三、解決辦法
找了一個多小時錯誤最后發(fā)現(xiàn),以前寫sql連接字符的時候前面的都會加一個@符號,因為我字符串中有字符“\”,如果不加的會提示錯誤,所以我每次都會加了。但是上次重裝系統(tǒng)的時候把命名實例改為了“t”字符開頭的名稱了。然后【\t】這個表示是一個制表格符,所以并不是會出錯,本身就是一個轉(zhuǎn)義符號的正確的使用場合,因為沒有出錯,也就忘記了加“@”了。
解決辦法就是在字符串前面加一個@。
注意
在寫sql連接字符串,或者是在windows平臺寫文件路徑的時候都記得在前面加上@字符,養(yǎng)成良好的習慣。
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。