网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ADO.NET学习笔记(二)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/27

鉴于大家对ASP.net十分关注,我们编辑小组在此为大家搜集整理了“ADO.NET学习笔记(二)”一文,供大家参考学习!


  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)
  • 上一篇资讯: ADO.NET学习笔记(三)
  • 下一篇资讯: ado.net详细研究
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号