2012-01-31 154 views
1

我剛開始編寫Windows窗體應用程序,我想將數據存儲在數據庫中,但不是在實際的數據庫服務器中。像SQLite(本地,獨立於服務器)。.NET窗體窗體本地數據庫

.NET是否有這樣的開箱即用的東西?我查看了DataSet,但是我很難填充它。

任何指針表示讚賞,謝謝!

+2

數據是否需要堅持跨應用程序重新啓動? SQLite有一個ADO.Net驅動程序,所以如果你需要以類似數據庫的方式存儲數據庫,那麼你最好使用一個數據庫。 – Horn 2012-01-31 22:46:25

+0

是的,數據是一堆我寧願在db中比在代碼中的數組中的句子。我在想,如果「Data:DataSet」是我正在尋找的......我已經直接連接到sql server db的3本書。如果找不到原生解決方案,我將最終使用SQLite。謝謝! – wakajawaka 2012-01-31 22:52:59

回答

0

如果您不必保存大量數據,則可以使用XML甚至JSON。 使用JSON.NET您可以序列化對象並將它們寫入文本文件,然後讀取json文件並返回數據。

// define you data type 
class MyData 
{ 
    ... 
} 

// using MyData 
string jsonString= myDaJsonConvert.SerializeObject<List<Profile>>(data); 
List<Profile> data = myDaJsonConvert.DeserializeObject<List<Profile>>(jsonString); 

編輯1:

即使其System.Data.SQlite組件過時這一傳統setup文件包含ADO.NET 2.0「設計師」組件可能簡化了很多的數據集創建例程。請記得稍後更新這個site的SQlite庫。

+0

我很熟悉操縱xml/json,但我確實想使用db模型(la sqlite),因爲它是一個非常基礎的遊戲。我不希望人們打開外部文件並查看所有數據。儘管謝謝你的建議! – wakajawaka 2012-01-31 22:59:59

0

您可以試試SQL Server Compact,我沒有使用它,但它似乎是你在找什麼。

0

考慮Sql Server精簡版,你可以找到說明如何將它添加到您的項目here。 下面的示例代碼從包含列ID在數據庫文件MyDb.sdf表MyTable的檢索數據,您還需要添加System.Data.SqlServerCe程序集的引用和命名空間System.Data.SqlServerCe

using (SqlCeConnection ceConn = new SqlCeConnection(@"Data Source=|DataDirectory|\MyDb.sdf")) 
using (SqlCeCommand ceCmd = new SqlCeCommand("select Id from MyTable", ceConn)) 
{ 
    ceConn.Open(); 
    SqlCeDataReader dataR = ceCmd.ExecuteReader(); 
    while (dataR.Read()) 
    { 
     Console.WriteLine(dataR["Id"].ToString()); 
    } 
}