2012-08-14 36 views
3

我已經開始了一個需要SQL Server數據庫的項目。我將在c#.Net 3.5中構建一個前端應用程序,它將使用LINQ to SQL。網絡共享上託管的SQL Server Express數據庫 - 可能嗎?

我需要主機上的網絡共享的數據庫,這樣一組用戶只能讀取數據庫中的所有增益的訪問,主要爲。

我知道,SQL Server精簡設計到本地機器上運行,我公司也不願意正面全血的SQL Server的成本。

有沒有辦法通過SQL Server Express實現我需要做的事情?

如果是這樣,哪些是如何設置的最佳指南?

感謝

+0

任何SQL Server實例都希望打開數據庫文件* *。沒有辦法像你一樣分享SQL Server數據庫文件。訪問數據庫。 – 2012-08-14 14:24:55

+0

+1是一個很好的問題。 – 2012-10-11 20:50:23

回答

3

如果使用(免費)的SQL Server Express去,它會做你需要什麼 - 但你不訪問它直通網絡共享驅動器 - 服務器將通過IP地址來定位(或同等DNS) 。

您C#應用程序將被談論到服務 - SQL服務器 - 無法從數據庫文件中讀取到/。該服務將處理與數據庫的交互。只有SQL Server服務需要知道文件的實際位置 - 您的客戶端計算機不會知道也不應該在意。

如果你的背景是隻與基於文件的數據庫 - 即MS訪問,你需要改變你的心態了一下有關SQL Server如何工作的。

+0

感謝你們,你知道我可以遵循的任何優秀指南嗎? – Derek 2012-08-14 14:52:31

+0

這裏是一個,但有很多教程可以在網上找到:http://www.mssqltips.com/sqlservertip/2694/getting-started-with-sql-server-2012-express-localdb/ – 2012-08-14 14:56:06

+0

我會更好在這個例子中使用類似MS Access的東西,甚至是LINQ to XML? – Derek 2012-08-14 19:07:14

1

您可以安裝SQL Server Express實例,並安裝了SQL管理Studio Express的誰需要訪問數據庫的所有用戶。 Express Edition是一個標準的SQL服務器,其使用的處理器數量,使用的最大內存量和最大數據庫大小都存在限制。如果這些限制不打擾你,它應該適合你。

使用網絡共享的數據庫存儲來自多個客戶端訪問數據庫文件是一個壞主意,因爲SQL Server實例應該總是直接訪問數據庫只有一個,無論是讀寫訪問。配置幾個SQL Server實例來訪問同一個數據庫可能不起作用 - 如果它能正常工作,它可能會在數據庫文件中造成嚴重破壞。

+0

我想使用c#應用程序使用DataContext類訪問數據庫。這不可能嗎?連接字符串將指向網絡共享上的數據庫? – Derek 2012-08-14 14:14:24

+0

簡單的規則:數據庫文件只能通過服務器使用的任何一個實例來訪問。可能它是一個SQL Server Compact或一個Express Edition,同時訪問這些文件的多個實例會招致麻煩。您可以使用SQL Express實例,使用SQL Server提供程序連接到數據庫並使用Linq to SQL來查詢數據庫。這對任何數量的客戶端都有效。在多個客戶端上使用來自嵌入式SQL Server壓縮包的數據庫肯定無法正常工作 - 或者像我所說的那樣,破壞了數據庫文件。 – 2012-08-14 16:02:42

相關問題