ADO.NET—Dataset(非连接类)

一、结构

       DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。

二、非连接类与数据库对应关系


1、DataSet:是 ADO.NET结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。DataSet 由一组DataTable 对象组成。

2、DataTable:数据表。

3、DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable中的行与另一个DataTable中的行相关联。这种关联类似于关系数据库中数据表之间的主键列和 外键列之间的关联。

三、特性

(1)独立性。DataSet独立于各种数据源。 

(2) 离线(断开)和连接。 

(3)DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。

四、使用方法

(1)把数据库中的数据通过DataAdapter对象填充DataSet。 

(2)通过DataAdapter对象操作DataSet实现更新数据库。 

(3)把XML数据流或文本加载到DataSet。

五、具体应用

1、查找某个特定字段数据

<span style="font-size:18px;">(1)DataTable:

DataTable1.Rows[index].Cells[index].Text;

DataTable1.Rows[i][j].ToString();

Text1.text =DataTable.Rows(1)(1)

(2)DatagridView

窗体.DatagridView.CurrentRow.Cells("列名").Value.ToString</span>

2、判断DataTable是否为空

<span style="font-size:18px;">DataTable.rows.count <1

table1 == null 

 table.Rows.Count == 0 

if Not (Convert.IsDBNull(dt.Rows(1)(1))  then  第一行第一列是否为空</span>

3、直接写入到表中

<span style="font-size:18px;">(1)读取数据方法如下:

   Dim ds As New DataTable                                              ‘定义一个DataTable来接收从数据库读取出来的符合条件的数据

   Dim ReadData AsNew SqlDataAdapter(Objcmd)           '用于读取数据库,和给DataTable 赋值

     Objconn.Open()                                                           ‘连接数据库

     ReadData.Fill(ds)                                                         ‘读取数据库中的信息

                                   

(2)  手动填写数据到DataTable

      在向DataTable中填写数据之前,首先要给DataTable添加 “行” 和 “列”:

     Dim dataTable  As New DataTable            '用于接收所有需要在界面显示的信息

     Dim dtRowsOnlineInfo AsDataRow            ‘定义一行     

     Dim dtColumn AsDataColumn                    ‘定以一列

 

    dtRowsOnlineInfo =dtInfo.NewRow              ‘实例化行 

   dtInfo.Rows.Add(dtRowsOnlineInfo)             ‘ 将实例化后的行添加到DataTable中

      

     dtColumn = NewDataColumn("0")              ‘添加一列,列名为“0”

    dtInfo.Columns.Add(dtColumn)                   ‘添加列

    dtColumn = New DataColumn("1")

    dtInfo.Columns.Add(dtColumn)

    建表后,可添加数据 

    dtInfo.Rows(2)(0) = etyStuInfo.SchoolNum

    dtInfo.Rows(2)(1) = etyStuInfo.StuName

    dtInfo.Rows(2)(2) = etyStuInfo.Sex

    dtInfo.Rows(2)(3) = etyStuInfo.Balance

通过对应的行号和列号为DataTable赋值。</span>

4、  读取数据

<span style="font-size:18px;">(1)  读取DataTable所有数据

DataGridView.DataSource=Datatable         ‘这样就可以直接将数据显示出来了。读取单个单元格的数据

 (2)读取DataSet所有数据

DataGridView.DataSource=DataSet 
gridOnWork.DataMember = "表"   </span>

注意:当访问 DataTable对象时,请注意它们是按条件区分大小写的。例如,如果一个 DataTable被命名为“mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的字符串被认为是区分大小写的。但是,如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不区分大小写。例如,如 果  DataSet   只包含   Table1,则可以使用   myDS.Tables[ "TABLE1"]   来引用它。

 

 

 

 

 

 


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值