浅谈数据持久化

PS:一些小小的见解,不做之处,还望朋友们多多指导。

数据持久化值得是数据存储方式,在.net中可以利用session、cookie对象保存用户登录状态,application对象配置应用程序。

这篇文章主要讲解数据的本地存储方案。

 

  1. DataSet类操作讲解
  2. 以xml文件保存数据
  3. 基于SQLite轻量级数据库保存数据
  4. 基于access数据库保存数据
  5. 基于SQLServer数据库保存

 

1.在讲解数据保存方案前简述一下.net中dataset类,dataset类基本上是内存中的数据库,其中包含了所有表、关系和约束。数据表(datatable)非常类似于物理数据库表,它由一组包含特定属性的列组成,可能包含0行或多行数据。每个数据表中包含数据列(datacolumns)和数据行(datarows),以数据库表做例讲解。

 

我们拿数据库与DataSet类做下类比以更直观的显示:

 

数据库                       DataSet

|—表                            |—DataTable

|—行                             |—DataColumn

|—列                             |—DataRow

 

      ADO.NET技术

(硬盘)<———————>(内存)

 

创建一个名为MusicDS数据集,里面有一个MusicDT数据表,添加Name、Path列,并设置Name列为主键。

DataSet ds = newDataSet("MusicDS");
DataTabledt = newDataTable("MusicDT");//创建表
//dt.Columns.Add(new DataColumn("ID", typeof(int)));//添加列指定数据类型
dt.Columns.Add(newDataColumn("Name", typeof(string)));//添加列
dt.Columns.Add(newDataColumn("Path", typeof(string)));//添加列
DataColumn[] pk = newDataColumn[] { dt.Columns["Name"] };//创建主键数组
dt.Constraints.Add(newUniqueConstraint("PK_MusicList", pk[0]));//添加约束集合指定名称和实例
dt.PrimaryKey = pk;//添加主键数组
ds.Tables.Add(dt);//添加到数据集

  

在数据集中添加数据:

ds.Tables["MusicDT"].Rows.Add(names[i], paths[i]);//参数对象类型和个数对应数据表中列的类型和个数。

  

2.在建立好DataSet对象后调用方法WriteXml(),将内存中的数据以xml文件的形式存放到硬盘。

 

ds.WriteXml(".\\info\\list.xml", XmlWriteMode.WriteSchema);

 

方法的第一个参数是文件存放地址,第二个对象是指定如何存储。

ds.ReadXml(".\\info\\list.xml", XmlReadMode.ReadSchema);

  

读取xml文件到DataSet对象调用相应方法。

3.基于SQLite数据库的本地存储方案适应于小型应用程序的用户信息存储,相比于其它数据库存储方案优点是不用在应用环境下安装支持文件,占用内存小等优点。缺点是读写速度相比于其它大型数据库慢,所以适应于小型应用程序的用户信息存储,另外安全性方面要明显优于XML文件。

         在开发过程中需要使用System.Data.SQLite命名空间下的方法

         SQLite的数据库支持会背系统复制到程序文件夹,所以在应用程序安装后不用安装特定的数据库支持程序。

使用方式是需要到其官方网站下载支持程序和视图开发工具,官网上也有基于SLQLite数据库开发的例子。

还有就是SQLite目前好像只支持.NET2.0下的开发。

 

4.基于ACCESS数据库开发的应用程序在安装后需要微软的Access程序支持。

         优点是访问速度快,占用内存低,缺点是当文件信息量大了后访问速度会降低,支持数据量有限制。适合C/S模式的小型管理系统开发。

         在开发过程中需要使用System.Data.OleDb命名空间下的方法

 

5.基于SQLServer数据库开发的用用程序需要相应版本的SQLServer数据库支持。低版本开发额数据库文件会自动升级到数据库支持运行的版本,从高级降到低级版本需要手动修改一些配置,详细过程这里不再阐述。

有点是访问速度快,运行安全可靠,缺点是相比于之前讲述的几种方案对机器要求高。

适用于B/S模式开发的中小型应用程序。

 

同级别的数据库有MySql、Oracle 等……

 

总述:基于xml、SQLite、Access、SQL Server的数据持久化方案均可在.net下与DataSet对象进行数据交换。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值