欢迎光临
我们一直在努力

ADO.NET学习笔记(二)-.NET教程,数据库应用

建站超值云服务器,限时71元/月

4、dataset

在ado.net中dataset的作用是为数据源提供一个断开式的存储,而不必关心数据源,操作只用在dataset中进行就行了。

有三种方法可以创建dataset:1、通过dataadapter 2、通过xml 文件 3、用人工方法确定架构,然后逐行输入数据。

主要介绍第一种方法。

dataadapter用于将dataset连接到基本数据存储,本质上是一种元command对象。

它包括selectcommand对象,insertcommand对象,updatecommand对象,deletecommand对象。

模板代码:

dim dataadpater as new sqldataadapter("select * from student",conn)

dim dataset as new dataset()

dataadapter.fill(dataset)

这时dataset的表名默认为table

如果使用批处理查询并将得到的结果填入dataset中则表名默认为table,table1,table2……

tablemappings:

表名映射:

生成dataadapter之后再进行表名映射

dataadapter.tablemappings.add("table","customer")

dataadapter.fill(dataset)

这时table的别名就变为customer(对dataset用table或customer操作都可以),dataset.tables("customer")就可以引用到这个表



dataadapter.tablemappings.add("adonet","customer")

dataadapter.fill(dataset,"adonet")

列名映射:

dataadapter.tablemappings.add("table","customer")

dataadapter.tablemappings("customer").columnmappings.add("customerid","id)

dataadapter.fill(dataset,"customer")

架构(schema),通过fillschema添加架构

1、添加主键

customertable.primarykey=new datacolumn[]{customertable.columns("customerid")} (通过数组的形式添加主键)

2、添加关系

dataset.relations.add("customers_invoices",dataset.tables("customers").columns("customerid"),dataset.tables ("invoinces").columns("customerid"),true)

3、添加约束

有两种主要约束:唯一约束、外码约束(uniqueconstraint,foreignkeyconstraint)

其中唯一约束又分为deleterule(级联删除约束)、updaterule(级联更新约束)、acceptrejectrule(调用acceptchanges或 rejectchanges时的约束)

4、添加触发器

可以对6中dataset事件添加触发器

rowchanging,rowchanged,columnchanging,columnchanged,rowdeleting,rowdeleted

5、列架构

比如添加列的属性:customertable.columns("customerid").readonly=true

或添加autoincrement列:

customertable.columns("customerid").autoincrement=true

customertable.columns("customerid").autoincrementseed=1 (列起始位置)

customertable.columns("customerid").autoincrementstep=1 (列递增步长)

可能有人会说这一切在dbms里面做不就行了吗,干吗那么大费周折的在ado.net对dataset再写一遍呢?

这主要是出于对效率方面的考虑,如果客户端的错误输入能在客户端就被发现出来,而不用传到服务端进行验证的话就可以减少不必要的传输了。

表达式列:

dim excolumn as new datacolumn("linetotal")

excolumn.datatype=typeof(float)

excolumn.expression="((price-(price*discount))*quantity)"

dataset.tables("items").columns.add(excolumn)

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ADO.NET学习笔记(二)-.NET教程,数据库应用
分享到: 更多 (0)

相关推荐

  • 暂无文章