我有兩臺機器分別運行C#.net Windows窗體應用程序。我希望它們都連接到位於其中一臺機器上的單個SQL Server數據庫。我喜歡這兩個應用程序使用該單一數據庫。但不幸的是,我得到了這個UNC共享問題。有沒有辦法解決這個問題?或者我必須嘗試不同的方法。請幫幫我。我會很感激它。UNC共享上的SQL Server數據庫
回答
AttachDbFileName
是一個可怕的和誤導性的功能。會發生什麼情況是,連接到此「數據庫」的每個應用程序都會複製數據文件。因此,如果Machine1
連接並進行更改,則Machine2
將不可見這些更改。即使在單機場景中,這也會導致很多混淆,因爲人們將通過Visual Studio進行連接,進行一些更新,然後不會從Management Studio中看到它。或相反亦然。 The User Instance
feature has been deprecated是有原因的;請停止使用這兩個。
既然你想多臺機器/應用程序連接到數據庫的相同副本,你想要的解決方案是連接到SQL Server的單個實例數據庫的一個副本,這兩個應用程序/機只需連接到該單一副本。
在MACHINE1-PC
做到這一點:
移動
ShopDatabase.mdf
及其相關.ldf
文件從你的用戶文件夾,併爲您的實例的數據文件夾。這將是東西這樣的:C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Data\
連接到使用
.\SQLEXPRESS
當地Express實例。使用Attach the database下面的代碼:CREATE DATABASE ShopDatabase ON (FILENAME = 'C:\...\ShopDatabase.mdf'), -------------------^^^ fill this in (FILENAME = 'C:\...\ShopDatabase_Log.ldf') -------------------^^^ fill this in FOR ATTACH; -- if there is no log file, you may need to do: CREATE DATABASE ShopDatabase ON (FILENAME = 'C:\...\ShopDatabase.mdf') -------------------^^^ fill this in FOR ATTACH_REBUILD_LOG;
確定
MACHINE1-PC
的外部IP地址(你可以從另一臺機器做到這一點通過平 - 在本地,它會告訴你127.0.0.1
這是無用的)。假設你有一個固定的IP並且不使用DHCP,這很可能是一種更可靠的連接方式,或者至少缺少一個額外的步驟(解析名稱)。如果您使用DHCP,但您不想依賴此,因爲您的IP地址可能隨時間而改變。連接字符串現在應該是:Data Source=MACHINE1-PC\SQLEXPRESS; Network=DBMSSOCN; Integrated Security=True; Initial Catalog=ShopDatabase; -- or: Data Source=<<IP Address>>\SQLEXPRESS; Network=DBMSSOCN; Integrated Security=True; Initial Catalog=ShopDatabase; -- (replace <<IP Address>> of course)
在Machine1
連接字符串可能使用Data Source=.\SQLEXPRESS
,但更好的是一致的,而不是保存了幾個按鍵。這樣,如果您對配置文件進行其他更改等,則可以將其分發到其他機器,而無需更改機器名稱。
在MACHINE1-PC上。我移動了這些文件。我使用Visual Studio 2010-> New sql express 2008數據庫項目附加了數據庫。我使用了連接字符串。在MACHINE1-PC上運行我的應用程序後,出現此錯誤:「System.Data.SqlClient.SqlException(0x80131904):建立與SQL Server的連接時發生網絡相關或實例特定的錯誤。未找到服務器或(提供者:SQL網絡接口,錯誤:26 - 錯誤定位服務器/實例指定)「 – CoOlDud3 2013-03-24 15:22:29
@ CoOlDud3您是否嘗試過'。\ SQLEXPRESS '或'
我使用Ray-PC \ SQLEXPRESS先生,因爲我沒有使用靜態IP。我目前在我的任一臺機器上都沒有** Sql Server Management Studio **。我使用** Visual Studio 2010 **創建了數據庫。我使用Visual Studio 2010測試了連接,它表示Connection Succeeded。但是當我運行我的應用程序時,它給了我與上面相同的錯誤 – CoOlDud3 2013-03-24 20:41:11
- 1. 如何共享sql server 2008R2數據庫
- 2. SQL Server數據庫與團隊共享?
- 3. SQL代理無法訪問UNC共享
- 4. SQL Server:網絡共享上的數據庫
- 5. 使用SQL Server 2008數據庫上的NAS共享
- 6. SQL數據庫共享
- 7. 無法將信息保存到數據庫 - UNC共享問題?
- 8. SQL Server數據庫在不同的項目之間共享
- 9. SQL和數據庫共享的選擇
- 10. SessionState在自己的SQL Server數據庫上的Windows共享主機
- 11. Response.TransmitFile()與UNC共享(ASP.NET)
- 12. 共享數據庫XML與SQLite與SQL Server CE
- 13. 在Azure Web和Worker角色中共享SQL Server CE數據庫
- 14. SQL Server上的SQL Server數據庫或數據庫
- 15. 共享數據庫
- 16. 網絡共享上託管的SQL Server Express數據庫 - 可能嗎?
- 17. Cygwin的 - 文件拷貝到UNC共享
- 18. 在VS17中的多個SQL Server數據庫項目之間共享SQL登錄
- 19. 修改共享主機上的SQL數據庫
- 20. 如何獲取SQL Server Express數據庫和DbContext對象以共享數據?
- 21. 共享共享數據存儲庫的數據卷
- 22. 在Cloudant上覆制共享數據庫
- 23. 窗口中的UNC共享錯誤
- 24. 共享數據的多個數據庫
- 25. 共享Redis數據庫?
- 26. LoopBack +無共享數據庫
- 27. 共享數據庫連接
- 28. 數據庫共享/版本
- 29. 共享數據庫句柄
- 30. Sitecore共享數據庫
直接使用SQL Server。在UNC上使用SQL Server是一個非常糟糕的主意。 – SLaks 2013-03-24 13:48:51
-1。 ** 1。** _「我得到這個UNC分享問題。」_我們無法讀懂你的想法。由於這似乎是你的主要問題,你爲什麼不描述它呢? ** 2。**可怕的問題標題。它基本上是一個標籤列表,但根本沒有描述你的問題。 – stakx 2013-03-24 13:49:19
我該如何實現? – CoOlDud3 2013-03-24 13:49:56