2012-08-24 89 views
1

不管我嘗試什麼,當我嘗試對我創建的數據庫運行簡單的選擇查詢時,我總是收到以下錯誤(我在管理工作室中運行了確切的查詢,並且工作正常和所使用的登錄是sysadmin組):SQL Server 2008與C#的連接

{「無法打開數據庫\」測試\「登錄所請求的登錄 失敗\ r \ n登錄名失敗,用戶 ‘JackLarson’。」 } System.SystemException {System.Data.SqlClient.SqlException}

我的連接s特林是:

數據源= \ MPIT_TEST;初始目錄=測試;集成 安全= TRUE;連接超時= 30;用戶實例=真

+0

您使用什麼憑證連接到SSMS中的數據庫?你的C#運行的憑據是什麼? –

+0

你能從你的代碼發佈查詢嗎?錯誤消息讓我想知道什麼.. –

+0

Sir Crispalot:我不知道如何檢查憑據。從錯誤消息,我認爲它是使用我的Windows登錄。 David W:查詢是「SELECT * FROM dbo.tblMPINum」 – Donnachaidh

回答

2

你有你的連接字符串 在設置您的服務器名稱,如果你的服務器名是SERVERSQLCOMPUTER您的連接字符串將是:

Data Source=SERVERSQLCOMPUTER \MPIT_TEST;Initial Catalog=[Test_MPITRACKER];Integrated Security=True;Connect Timeout=30;User Instance=True 

此外,始終指定服務器名稱,以便能夠在每臺計算機上使用您的應用程序在網絡企業中(servername \ serverinstance是絕對路徑) 。\ serverinstance意味着您的應用程序與您的Sql服務器在同一臺計算機上

+0

謝謝@Hassan Boutougha更改爲包含特定服務器名稱修復了問題 – Donnachaidh

+0

歡迎您的朋友;-) –

0

看看錯誤消息。它說它找不到名爲的數據庫測試,儘管您在連接字符串中指定了Test_MPITRACKER。它看起來像是有一個問題,當您的數據庫名稱中包含不良內容_時。

最簡單的方法是從數據庫名稱中刪除不需要的內容。

如果你要使用的數據庫名稱以下劃線,嘗試用方括號來包裝它,所以它看起來是這樣的:

Data Source=.\MPIT_TEST;Initial Catalog=[Test_MPITRACKER];Integrated Security=True;Connect Timeout=30;User Instance=True 

但是,我沒有測試過這種解決方案,它基於在這裏找到的信息:Database created in SQL Server Management Studios cannot be found by Visual Studio 2010

編輯

根據註釋的談話,這不是問題。在這種情況的原因。

+0

對不起,這是我的錯字。我的老闆對於我們的系統在網上發佈的具體細節的可能性是嚴格的。它找不到的數據庫與在連接字符串中調用的數據庫相同 – Donnachaidh

+1

我嘗試刪除下劃線,但仍得到相同的錯誤 – Donnachaidh

+0

嘗試創建新的SQL用戶,將其映射到'Test_MPITRACKER'數據庫,啓用SQL認證並在連接字符串中使用他的憑證。要驗證此用戶的訪問是否正常,請確保您可以使用SQL Management Studio使用這些憑據進行登錄。這可以爲問題提供一些線索。另外,嘗試從連接字符串中刪除「User Instance」,因爲它似乎已被棄用(如另一條評論所述)。 –