2010-09-15 37 views
1

我有一個控制檯應用程序,需要連接到遠程SQL Server 2008實例.... 即使我有權訪問該錯誤數據庫... connection.open()是引發錯誤的行...C#應用程序訪問遠程SQL Server 2008實例...不工作

+0

錯誤是「登錄失敗的[USERNAME]」 – 2010-09-15 13:19:35

+0

導致,[USERNAME]是否有權訪問數據庫,例如。 SQL管理工作室?它是一個SQL用戶還是一個Windows用戶? – 2010-09-15 13:23:34

回答

0

請確保您的控制檯應用程序中的連接字符串使用您用於在management studio中成功連接的相同憑據和設置。

您是在一個地方使用Windows身份驗證,而在另一個地方使用SQL登錄?

0

您以前能否連接到此遠程服務器?如果您以前能夠連接,但現在無法連接,則可能表示已將其他服務器的數據庫備份副本還原到該服務器。

當您編寫「有權訪問」該數據庫時,如何連接?關閉您的SQL Server Management Studio副本並重新打開它;當您獲得連接對話框時,請務必輸入控制檯應用程序用於連接的用戶憑據。你看到你的數據庫了嗎?你是否能夠執行存儲過程,運行SELECT語句或以其他方式做你期望的事情?

如果您沒有看到數據庫 - 或者您無法執行您期望的活動,則可能是從另一臺服務器恢復了數據庫。這是非常普遍的 - 數據庫開發人員正在開發他的開發機器上的數據庫的下一個版本;當需要部署時,他會備份數據庫,將其複製到服務器,並恢復數據庫。現在他無法連接 - 並且無法理解爲什麼。

原因是登錄和用戶在SSMS UI中以字符串的形式呈現 - 但實際上它們是整數ID。您必須執行一些腳本才能從數據庫中刪除無效用戶記錄,以便將其分配給新服務器的登錄。

如果這聽起來像是您的問題,請回復 - 我會稍微檢查一下,然後繼續提供更多幫助。

JM

1

確保SQL Server 2008實例可以在你的系統,你正在運行的應用程序。 Sql server 2008的至少客戶端版本應安裝在開發機器上。 檢查連接字符串和服務器系統也允許網絡連接。