2011-09-29 59 views
0

我有一個應用程序(當前位於foxpro中)使用大約12個可聯網的表。 這些表以各種方式相關,但不是過分複雜 - 更像是一個客戶訂購系統我應該將哪個數據庫用於小型網絡應用程序

我想用C#使用MS Visual Studio重寫它。 該應用程序僅適用於桌面,但最多可有5個用戶在任何給定時間訪問它。

問題是我應該使用哪個數據庫? 它需要是:

  • 易於與應用程序安裝。
  • 支持多達3或4臺電腦

我已經看過了SQL Express但共享問題看起來需要服務器計算機是相當複雜和安裝SQL共享。 DB4O似乎適用於更多媒體豐富的應用程序。我對C#來說是相當新的(現在在牙齒上也變得很長),所以我需要這種合理的無痛方式來實現我已經在Foxpro中擁有的東西。

有人可能會問爲什麼要改變 - 好吧,有些事情我們希望能夠在未來增加Foxpro太遠。

我花了幾個星期的時間研究這個問題,現在真的會很感激任何人可以提供的幫助。

+1

與SQL Server Express圍棋 - 它是免費的,它很容易使用(一旦設置完成),它在網絡環境中是可靠的,再加上你將學習以後可以在「真實」SQL Server實例上使用的技能,如果需要的話。冒險,學習安裝和設置,然後你會好起來的 –

+0

SQL Express不適用,因爲它不能在域之外的碎片驅動器上工作 - 就我所能確定的這一點而言。 –

+1

SQL Server Express需要一個**適當的服務器**,它可以安裝在其上 - 坦率地說,如果您有多個併發用戶,那麼這是使其可靠工作的唯一方法。任何基於文件/目錄的解決方案都會導致您的悲傷和腐敗問題 - 遲早...... –

回答

4

我的政策:如果作業可以通過SQLite(對於.NET一個選項是System.Data.SQLite)來處理,請使用它。表面上看起來就像這樣。

SQLite是一個獨立的無服務器零配置事務SQL數據庫引擎。 SQLite是世界上部署最廣泛的SQL數據庫引擎。 SQLite的源代碼處於公有領域。

+2

從[SQLite常見問題](http://www.sqlite.org/faq.html#q5):「人員誰有很多Windows的經驗告訴我,網絡文件的文件鎖定是非常麻煩,並不可靠的。如果他們說的是真實的,在兩臺或多臺Windows機器之間共享SQLite數據庫可能會導致意想不到的問題。如果您需要共享數據庫,嵌入式數據庫通常不太適合。 – millimoose

+1

快速谷歌沒有產生與SQLite實際發生的這種問題的報告,並且該FAQ看起來有些過時,並且它不清楚它是否討論NTFS。我通常使用文件共享數據庫獲得了很好的結果,包括比用戶所建議的使用環境更重的環境。然而,我從來沒有以這種方式使用SQLite。 –

+0

SQLite似乎正是我所需要的,但是我遇到了兩個困難:1.即使閱讀了與此相關的一些文章,我仍然在Visual Studio 2010實現中遇到錯誤。 2.處理「金錢」數據。這是一個商業應用程序,即。它涉及項目定價和折扣,通貨和消費稅。 SQLite處理這個問題的方式仍然不清楚,有些人說只使用一個整數並將價值存儲爲美分。所以我仍然需要解決這個問題。如果貨幣計算在系統的核心,那麼真的會很欣賞這個反饋。 –

0

嘗試MySQL的,我認爲有一個簡單的方法,使沿網絡(我認爲這是在安裝過程中)

0

的MySQL數據庫共享...使用該驅動程序ODBC驅動器,使你的。 NET應用程序可以連接到mysql mysql odbc driver

+1

我認爲非微軟數據庫對於那些對平臺沒有多少經驗的人來說並不是一個好的建議。教程將向您指出諸如LINQ-to-SQL之類的功能,除了SQL Server之外,其他功能並不真正起作用。 – millimoose

0

SQL Server Compact Edition支持在同一臺機器上的多個客戶端。如果您需要從多臺計算機連接到數據庫,則應該堅持使用Express Edition。

+0

這不會工作,因爲我正在查看從多個(2-5)計算機訪問數據。 –

1

只要攪拌一下鍋,如果你連接到互聯網,你可以給一個SQL Azure Database旋轉。

無需服務器;多個連接不成問題;可擴展性;維護;如果您改變了主意,稍後再與本地數據庫同步。 MS有90天的試運行時間,可能適合您的調查目的。

其他方面已經涵蓋了缺點,但主要是因特網故障導致應用程序脫機。

這實際上並不是一個壞的選擇,如果您希望升級並快速運行。

+0

確實是一個不錯的選擇!您將所有「保持運行的服務器」任務卸載到專業數據中心,並專注於您自己的業務邏輯! –

0

您是否考慮過使用文檔數據庫而不是這裏討論的典型Releationl數據庫?

一個非常友好的.Net空間是RavendDB。

通過這個簡單的「Hello World」的教程工作(顯示了一些基本的CRUD編碼)在Visual Studio中得到它是如何工作的感覺:http://ravendb.net/tutorials/hello-world

相關問題