簡體   English   中英

在Visual Studio中創建安裝文件時,為什么不能連接到SQL Server數據庫?

[英]Why can't I connect to the SQL Server database when I create setup file in Visual studio?

我使用C#Windows窗體創建應用程序,該窗體使用本地SQL Server數據庫服務器使用以下連接字符串存儲/讀取數據:

 SqlConnection cn = new SqlConnection("Data Source=localhost;Initial Catalog=mydb;Integrated Security=True");

之后,我創建了一個安裝文件(exe),然后將安裝文件安裝在同一台PC上,該應用程序運行良好,可以從SQL Server數據庫中讀取數據。

現在,當我轉到另一台PC時,出現了問題,我安裝了SQL Server,並手動附加了相同的數據庫(mydb)並安裝了我的應用程序,但它不起作用。 該錯誤顯示在屏幕截圖中:

屏幕截圖

我在另一台PC上有不同的SQL Server名稱,但是我在連接字符串中指定SQL Server為Localhost,所以我不知道為什么它不起作用。 請幫助我如何解決此錯誤。 謝謝

確保將Sql Server設置為允許Tcp / Ip連接,並且將其設置為允許集成安全性登錄。 然后,確保授予該計算機上的用戶對數據庫的正確訪問權限。 如果您希望能夠分發此應用程序並使它“正常運行”,那么在此處使用Sql身份驗證而不是Windows身份驗證可能會更好。

最后,如果此處的Sql Server是要作為典型本地桌面應用程序的簡單數據存儲,則可能會適得其反。 Full Sql Server(包括Express Edition)是服務器引擎。 當它是機器上唯一運行的東西時,它工作得最好,並且可以用盡機器上的所有資源以緩存數據並處理來自許多遠程機器的請求。 如果只想為典型的桌面應用程序提供本地數據存儲,則像Sql Server LocalDb,Sql Server Compact Edition,Sqlite甚至MS Access這樣的進程內引擎將是更合適的選擇。

您需要為另一台計算機上登錄的用戶設置Windows身份驗證。 因為您使用的是Integrated Security,它將嘗試使用當前用戶的Windows登錄名連接到SQL Server。 這將是不同計算機上的不同登錄名,因此另一台計算機上的SQL Server需要添加該用戶。

您需要啟動SQL Server Browser Service 它使您的應用程序連接到SQL Server:

SQL Server瀏覽器偵聽Microsoft SQL Server資源的傳入請求,並提供有關計算機上安裝的SQL Server實例的信息。

要啟用它:

在SQL Server配置管理器中,轉到“屬性=>服務選項卡=>啟動模式=自動”。

要么

這台計算機=>管理=>服務和應用程序=>服務=> SQL Server Broswer

注意:您需要一個特定於sql的用戶來連接它,因此不能對每台計算機都使用Integrated Security

創建一個Sql Server用戶並允許其訪問數據庫:

--//Creates the login AbolrousHazem with password '340$Uuxwp7Mcxo7Khy'.
CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
GO

--//Creates a database user for the login created above.
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM