2012-01-31 167 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()); 
    } 
}