您所在的位置: 首页>>开发>>.Net>>ado.net>>

ADO.NET数据库实例教程(2)

  • 摘要:ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文旨在介绍ASP.NET Beta2数据库编程的主要内容,帮助编程者最快的了解ADO.NET数据库编程的精髓。
  • 标签:.NET  ADO  数据库

二、 Data Set

本章将介绍DataSet对象,DataSet对象包含内容很多,我们基本上都将涉及,包括DataTables、DataRows等。

什么是DataSet

回头看看ASP,我们知道当查询数据的时候,返回的数据是放在RecordSet中的,RecordSet只能保存返回的一个表的数据,而且它很不灵活。

DataSet在RecordSet上增加了很多功能,并且,它可以保存多个返回的数据表结果。

DataSet被分解为很多部分比如DataTables和DataRows,可以使用它们创建一个DataSet而不一定要连接到一个具体的数据库。当然,DataSet本身就是离线数据,所有的数据都可以离线使用而不必一直连接到数据库,只有需要对数据库进行编辑的时候才需要连接到数据库。

实践

Dim ds1 As New DataSet()
Dim dtable As new DataTable("people")
With dtable.Columns
.Add("FName", System.Type.GetType("System.String"))
.Add("LName", System.Type.GetType("System.String"))
.Add("UID", System.Type.GetType("System.Int32"))
End With
dtable.Columns("UID").AutoIncrement = True
ds1.Tables.Add(dtable)

dim pkey() as DataColumn = {ds1.Tables("people").Columns("UID")}
ds1.Tables("people").PrimaryKey = pkey

以上语句稍微有点复杂,我们来看看:

前半部分我们建立了一个DataSet和一个叫People的DataTable,然后,我们为这个DataTable加入了三个列并将"UID"列设为自动递增。最后,将这个DataTable加入到了DataSet。

第二部分我们现在不需要理解,只要知道定义了主键就可以了。

DataTable就是一个数据表,我们可以对这个表进行如:增加数据、修改数据等操作。我们也可以通过DataSet建立一个DataTable:

Dim dtable As DataTable = ds1.Tables("people")

这样,将DataSet的表People的结构和数据拷贝到了DataTable中,尽管它是无连接的,但是仍然可以通过修改这个DataSet来更新DataSet表,因此,如果我们在dtable中增加一列并且接受改变就以实现对DataSet的修改:

Dim row as DataRow = dtable.NewRow()
row(0) = "Philip"
row(1) = "Quinn"
dtable.Rows.Add(row)
dtable.AcceptChanges

这样我们就建立了一个新的DataRow,这和用dtable.NewRow()建立一个新的数据列一样,我们还可以给这个列取名了Fname。

因为以上的DataTable来自DataSet,如果我们使用dtable.AcceptChanges方法更新DataTable,DataSet也会被更新:

<%@ Import Namespace="System.Data" %>
<script language="VB" runat="server">
Sub Page_Load(sender as object, e as eventargs)
Dim ds1 As New DataSet()
Dim dtable As new DataTable("people")
With dtable.Columns
.Add("FName", System.Type.GetType("System.String"))
.Add("LName", System.Type.GetType("System.String"))
.Add("UID", System.Type.GetType("System.Int32"))
End With

dtable.Columns("UID").AutoIncrement = True
ds1.Tables.Add(dtable)

Dim dtable2 As DataTable = ds1.Tables("people")

Dim row as DataRow = dtable2.NewRow()
row(0) = "Philip"
row(1) = "Quinn"
dtable2.Rows.Add(row)
dtable2.AcceptChanges

Response.Write(ds1.Tables("people").Rows(0)("FName").ToString)
End Sub
</script>

以上代码将显示"Philip",现在我们来看看具体过程:

1、 建立一个DataSet和一个叫"People"的DataTable;
2、 增加三个数据列并且设置它们的数据属性;
3、 将它们加入到DataSet;
4、 建立另外一个DataTable,这个DataTable是刚才建立的那个的拷贝;
5、 用DataTable建立新的DataRow并加入数据;
6、 接受数据改变同时更新了DataSet;
7、 显示第一个数据列;

DataRows

DataRow是DataTable的数据列,刚才我们已经看到,我们可以使用DataTable的以下方法建立一个新的DataRow:

ds1.Tables("people").Rows(0)("FName") = "Phil"

以上语句中,ds1.Tables("people")选择表"people",.Rows(0)选择表的第一行,("FName")选择表的字段为"Fname"。

DataRows是数据列的集合,通过以下语句取得:

Dim drow as DataRowCollection = ds1.Tables("people").Rows

对于DataRows,我们基本上不能做太多。如果针对一个具体的数据列,我们可以这样:

Dim drow2 as DataRow = drow.Item(0)

需要修改这个列的数据,可以这样:

drow2(0) = "Philip"
drow2.AcceptChanges

可能说了那么多,我们都觉得比较复杂,我们来看看这个图示:


共7页: 上一页 [1] 2 [3] [4] [5] [6] [7] 下一页
【内容导航】
网络应用性能控管最佳实践
Sun以10亿美元并购开源数据库厂商MySQL
Oracle数据库开发之PL/SQL基础应用
Oracle数据库开发基础教程
专题:ASP.NET 2.0基础开发指南
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有