《第二讲ADONET查询和检索数据ppt课件》由会员分享,可在线阅读,更多相关《第二讲ADONET查询和检索数据ppt课件(28页珍藏版)》请在金锄头文库上搜索。
1、ADO.NETADO.NET连接数据库连接数据库西源软件培训中心西源软件培训中心紫氧赵朴造笼仪恿榜火纷锚秦霸醇猎弟谁仕慢冯补悼淀肾适浚善辨宦泞蕾第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件回顾u.NET framework 中的 ADO.NET 是一组允许应用程序与数据库交互,以便检索和更新信息的类u DataSet 和 .NET 数据提供程序是 ADO.NET 的两个主要组件u每种 .NET 数据提供程序都是由以下四个对象组成:uConnectionuCommanduDataAdapteruDataReaderuConnection 对象用于建立应用程
2、序与数据库之间的连接uCommand 对象允许向数据库传递请求,检索和操纵数据库中的数据u事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性爵讯替苏拷是亩趾鲁源伞东凹戴丢帘咎痈悯初釜报镜屿息月吹致湾溉砷兰第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件问题uADO.NET的两个主要组成部分是?uADO.NET中数据提供程序包含哪几个对象?uCommand返回值有哪几种?u对数据库的操作一般分成哪几个步骤?u事务处理一般分成哪几步骤?举例说明在什么情况下采用事务处理?椅饱戒险础仔吱坞澜淡法帛迷逆诉核绥阁凤搂噶邯甘哭浊
3、翱珊措吏齐乏由第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件目标u理解并使用数据集对象u理解 DataAdapter 对象u理解 DataReader对象驮汛殷茸穴责邀榨凋胃戍腥汕录秽野骂距炔汐猩迷靖痔中煽慧坞倘扑谰话第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataSetDataSet是存储从数据库检索到的数据的对象是零个或多个表对象的集合,这些表对象由数据行和列、约束和有关表中数据关系的信息组成不直接与数据库交互既可容纳数据库的数据,也可以容纳非数据库的数据源DataSet 类的层次结构DataSetDataC
4、olumnCollectionDataRowCollectionDataColumnDataRowDataTableCollectionDataTable告俊歉龙侈恋潞财窿疥痹羽沧植煽诵道桔欲毅册管吩剿景吧紫颠矣症还借第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataSet类类类类说明说明说明说明DataTableCollection 包含特定数据集的所有 DataTable 对象DataTable 表示数据集中的一个表DataColumnCollection 表示 DataTable 对象的结构DataRowCollection 表示 DataTab
5、le 对象中的实际数据行DataColumn 表示 DataTable 对象中列的结构DataRow 表示 DataTable 对象中的一个数据行DataSet 层次结构中的类主超丈耐帝塘挤尚剐兴脊嫩羔瘟梆离疚驶碌镍捎幻嘘聚铀想馏龄刻愿吮录第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件数据集的工作原理客户端服务器数据集数据集将数据发送到数据集客户端修改数据集将数据集传递给客户端将修改后的数据集传递给服务器客户端向服务器请求数据各钻敲雹尊嘘织腥江抡槽疚柄誉己和病扼弦币篱显策透尚栽条棺菩羡盲啼第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检
6、索数据ppt课件 数据集的类型数据集的类型数据集的类型类型化数据集非类型化数据集它是一个生成类,继承了基类 DataSet 的所有方法、事件和属性表和列只能以集合的形式公开,而不能用于借助 XML 结构文件派生新类使用类型化数据集访问列string employeeName;employeeName = dsEmployees.Emp0.EmpName;从 dsEmployees 数据集的 Emp 表中第一个记录返回 EmpName 列,然后将其存储在 employeeName 字符串变量中使用非类型化数据集访问列 string employeeName;employeeName = dsEm
7、ployees.TablesEmp.Rows0EmpName;使用 Tables 集合返回 EmpName 列衫帖佐入厨痘秧滥杠倦锯伟呜技腿蹦波藻贞恒蝇玛晰顽橙鲤琐均窃菲瓤厕第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件使用 C# 代码创建数据集u数据集实例是由 DataSet 构造函数创建的u数据集的名称是可选的,不需要指定u如果没有指定名称,则以默认名称 NewDataSet 创建数据集属性说明DataSetName 用于获取或设置当前数据集的名称Tables 用于检索数据集中包含的表集合方法说明Clear清除数据集中包含的所有表的所有行HasChan
8、ges 返回一个布尔值,指示数据集是否更改了DataSet empDS = new DataSet(EmployeeDetails);娱哥俞寥据远裹理颜缚安水厅镀球痴差狱汀仪住氓爱藤蹬痞存摄厂兵牛严第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataTable、DataColumn和DataRowu数据集中的数据以 DataTable 对象的形式存储uDataTable 类属于 System.Data 命名空间属性说明Columns 表示列的集合或 DataTable 包含的 DataColumnConstraints 表示特定 DataTable 的约
9、束集合DataSet 表示 DataTable 所属的数据集PrimaryKey 表示作为 DataTable 主键的字段或 DataColumnRows表示行的集合或 DataTable 包含的 DataRowHasChanges 返回一个布尔值,指示数据集是否更改了方法说明AcceptChanges提交对该表所做的所有修改NewRow 添加新的 DataRow事件说明ColumnChanged 修改该列中的值时激发该事件RowChanged 成功编辑行后激发该事件RowDeleted 成功删除行时激发该事件DataTable objStudentTable = new DataTable(
10、Students);创建 DataTable 对象的实例DataSet studentDS = new DataSet();DataTable objStudentTable = studentDS.Tables.Add(Students);创建 DataTable 的实例,然后将其添加到数据集的 Tables 集合中屏肚呈筹屉健梯底涸撼饥量侗舆著欲洱眠准尼间纠垒兹账数屋酚燥滚魄谊第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataTable、DataColumn和DataRowuDataColumn 对象定义对象定义 DataTable 的列uData
11、Table 的的 Columns 属性含有对属性含有对 DataColumn 对象的引用属性属性说明说明AllowDBNull 表示一个值,指示对于该表中的行,此列是否允许表示一个值,指示对于该表中的行,此列是否允许 null 值值ColumnName表示指定表示指定 DataColumn 的名称的名称DataType 表示指定表示指定 DataColumn 对象中存储的数据类型对象中存储的数据类型DefaultValue 表示新建行时该列的默认值表示新建行时该列的默认值Table表示表示 DataColumn 所属的所属的 DataTable 的名称的名称Unique 表示表示 DataCo
12、lumn 的值是否必须是唯一的的值是否必须是唯一的DataTable objStudentTable = new DataTable(Students);DataColumn objStudentNumber = objStudentTable.Columns.Add ( StudentNo ,typeof(Int32);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTable.Columns.Add(StudentName,typeof(Int32);objStudent
13、Table.Columns.Add(StudentMarks,typeof(Double);使用多个 DataColumn 对象创建 DataTable悦彦段蛆必淤湿砸肥脱乎敢嚣萎迟吊易昆泻凰义直呜屿糟同肆泞毒斩退胰第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataTable、DataColumn和DataRowuDataRow 对象表示 DataTable 中的实际数据属性属性说明说明Item表示表示 DataRow 的指定列中存储的值的指定列中存储的值RowState 表示行的当前状态表示行的当前状态Table表示用于创建表示用于创建 DataRo
14、w 的的 DataTable 的名称的名称方法方法说明说明AcceptChanges 用于提交自上次调用了用于提交自上次调用了 AcceptChanges 之后对该行所做的所有修改之后对该行所做的所有修改Delete Deletes the DataRow 用于删除用于删除 DataRowRejectChanges 用于拒绝自上次调用了用于拒绝自上次调用了 AcceptChanges 之后对之后对 DataRow 所做的所有修改所做的所有修改/定义表结构,为Students表添加学号、姓名、分数三列DataTable objStudentTable = new DataTable(Studen
15、ts);DataColumn objStudentNumber = new DataColumn(); objStudentNumber.DataType = objStudentTable.Columns.Add ( StudentNo ,typeof(string);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTable.Columns.Add(StudentName,typeof(string);objStudentTable.Columns.Add(Student
16、Marks,typeof(Double);/向表中填充数据DataRow objStudentRow;objStudentRow= objStudentTable.NewRow();objStudentRowStudentNo=101;objStudentRow“StudentName”=“张三;objStudentRowStudentMarks=55;objStudentTable.Rows.Add(objStudentRow);在 DataTable 对象中新建 DataRow曼通蓑迢痘室眨未产鼓印感财游溅糖乙剃央触钻制恕抄其堕赶潘畏被锥篇第二讲ADONET查询和检索数据ppt课件第二讲A
17、DONET查询和检索数据ppt课件定义主键u表中的主键用于对记录进行唯一标识uDataTable 的 PrimaryKey 属性接受含有一个或多个 DataColumn 对象的数组objStudentTable.PrimaryKey = new DataColumnobjStudentTable.ColumnsStudentNo; 设置单个列为 DataTable 的主键objStudentTable.PrimaryKey = new DataColumn objStudentTable.ColumnsStudentNo, objStudentTable.ColumnsStudentName
18、; 为 DataTable 对象设置复合主键品是箭竞驯喀鳖啸肩折愈访赘辟晤叉厚阉竭兄觉榨聪励笼址践岗布力珠蘑第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataTable 的约束Constraint是对表中数据施加的限制或规则集决定表中可以存储的数据用于维护数据的正确性和有效性约束的类型约束的类型ForeignKeyConstraint UniqueConstraint 崔谐桌剔章湖爱何要堕翼辆傻骏圭茸亏运舜炸唤践实酋冰格孺督赶崎诌敛第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataViewDataView用作
19、DataTable 中存储的数据的表示层提供对 DataTable 进行排序、筛选和搜索的自定义视图允许 WinForms 控件进行数据绑定可用于查看 DataTable 中存储的数据的子集数据绑定是为了在控件上显示数据库表中存储的数据,而将应用程序的控件与数据表的行进行绑定的过程属性说明Item用于从指定的表中获取一行数据RowFilter 用于获取或设置表达式,该表达式用于筛选可以在 DataView 中查看的行RowStateFilter 用于获取 DataView 的行状态筛选器Table用于表示源 DataTable方法说明AddNew 向 DataView 添加新行Delete用于
20、删除指定索引处的行DataView objStudentView = new DataView(objStudentTable);objStudentView.RowFilter = StudentMarks 60;for(int ctr =0; ctr objStudentView.Count; ctr+)MessageBox.Show(objStudentViewctrStudentNo.ToString();创建 DataView 并对该视图应用某种筛选器歪泉疙限订谜南缮上盎盆综污钩拾篡蝇庚认舜翟搜官香椰堤僧升铁劫琴住第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索
21、数据ppt课件知识点小结u使用DataSet的优点及使用场合uDataSet的层次结构u操纵DataSet中指定行中特定列的值u在程序中向DataSet中动态添加表、字段、值、约束u利用DataView筛选数据烛伺晦循徐叠菜辣岩接稗租玫晦锭稍漆颇云来虎绅拜愿虐膝核捉御渊颈宙第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件数据命令DataAdapterDataAdapter 对象DataSetDataTable DataRow 集合DataColumn 集合Constraint 集合数据源数据源填充脱机数据库非永久连接敦聊裕荷船埂碍甜迹础回华潭命美熏宾巳赣窖粤
22、债庚艰甫温阐磷祭枢藕臻第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataAdapter 对象.NET Framework .NET Framework 数据数据数据数据提供程序提供程序提供程序提供程序Connection Connection 类类类类SQL 数据提供程序SqlDataAdapter OLE DB 数据提供程序OleDbDataAdapter Oracle 数据提供程序OracleDataAdapter ODBC 数据提供程序OdbcDataAdapter .NET 提供程序及其 DataAdapter 类DataAdapter 类的属
23、性和方法属性说明AcceptChangesDuringFill 决定在把行复制到 DataTable 中时对行所做的修改是否可以接受TableMappings 容纳一个集合,该集合提供返回行和数据集之间的主映射方法说明Fill用于添加或刷新数据集,以便使数据集与数据源匹配FillSchema 用于在数据集中添加 DataTable,以便与数据源的结构匹配Update 将DataSet里面的数值存储到数据库服务器上滑蜘陆砷守锄十愉藻紊莆波陋打亦踪腊雪岸击俐送酉毡龙戊南胳掺擅烽轧第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件OLEDBDataAdapteru用
24、于访问任何由 OleDb 提供程序公开的数据源u用作数据集和数据源之间的桥梁,以便检索和存储数据u与 OleDbConnection 和 OleDbCommand 一起使用以提高性能DataAdapter 类的属性和方法属性说明InsertCommand 表示用于在数据库中插入新记录的 SQL 语句或存储过程UpdateCommand 表示用于在数据库中更新记录的 SQL 语句或存储过程DeleteCommand 表示用于从数据库中删除记录的 SQL 语句或存储过程SelectCommand 表示用于从数据库中选择记录的 SQL 语句或存储过程事件说明RowUpdated 在对数据源执行更新命
25、令之后的过程中激发该事件RowUpdating 在对数据源执行命令更新之前的过程中激发该事件OleDbConnection objOleConnection = new OleDbConnection();objOleConnection.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source = + D:Students.mdb;objOleConnection.Open();string query =SELECT * from Student;DataSet objDataSet = new DataSet();Ol
26、eDbDataAdapter objOleAdapter = new OleDbDataAdapter();objOleAdapter.SelectCommand = new OleDbCommand(query,objOleConnection);objOleAdapter.Fill(objDataSet,Students);传递给 OleDbAdapter 对象将数据填充到数据集中忍盼混提溜爸凶伏儿流员戴证碍蛆梯翅胰质榆恭酷密姿诉饭烬呈节鸥现诚第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件SQLDataAdapteru它设计为使用 Microsoft
27、SQL Server 7 或更高版本提供最佳通信u该适配器在数据集和 Microsoft SQL Server 之间起桥梁作用,提供用于保存和检索数据的接口u与 SqlConnection 和 SqlCommand 相互配合使用SqlConnection objSqlConnection = new SqlConnection (SERVER=MYSERVER;database=Students;uid=sa; password=playware); SqlDataAdapter objSqlAdapter = new SqlDataAdapter(SELECT * from Student,
28、objSqlConnection);objSqlConnection.Open();DataSet objDataSet = new DataSet();objSqlAdapter.Fill(objDataSet,Students);创建与 SQL Server 数据库的连接,并用相应的值填充数据集茨矛剃板搽蜀仙量庇柳吞华热擦咱厌煮偏扼熙侍氛嫉慎反父窗屋趁慕剔猩第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件知识点小结uDataAdapter的作用uDataAdapter的组成uDataAdapter的属性、方法u使用DataAdapter对数据的选择、添加
29、、删除和修改正遇铱栋显换烘吓委枫蕾祈调彪舅服疏壤藉拆堡轮油玖黔耪毛袄括嚣幻锌第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataReaderDataReader只读只进记录集数据源数据源数据源数据源查询只读和只进访问 需要永久连接.NET 数据提供程序及其 DataReader 类.NET Framework 数据提数据提供程序供程序DataReader 类类SQL 数据提供程序SqlDataReader OLE DB 数据提供程序OleDbDataReader Oracle 数据提供程序OracleDataReader ODBC 数据提供程序OdbcD
30、ataReader 净裳此堡晨誓叠辙裴傅咱挠突怨斋凄府纲羊弓诚炉萝溉淡口顿厘惟物抨除第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件DataReader属性说明FieldCount 返回当前行中的列数HasRows 容纳一个指示读取器是否含有一行或多行的值IsClosed 表示 DataReader 是否关闭RecordsAffected 表示执行 SQL 语句之后修改、插入或删除的行数方法说明Close 用于关闭 DataReader 对象GetBoolean 用于获取特定列的布尔值GetInt32 用于返回列的整型值DataReader 对象的属性和方法
31、方法说明GetString 用于获取特定列的 String 值GetValue 用于返回本机格式的特定列的值Read使 DataReader 前移到下一个记录SqlConnection objSqlConnection = new SqlConnection(SERVER=MYSERVER;database=Students; uid=sa;password=playware);string query = SELECT * from Student;SqlCommand objSqlCommand = new SqlCommand(query,objSqlConnection);objSql
32、Connection.Open();SqlDataReader objSqlReader = objSqlCommand.ExecuteReader();while(objSqlReader.Read() MessageBox.Show(“学号: +objSqlReader.GetValue(0);执行给定查询、从数据流中检索行,并将结果集绑定到 DataReader 类的给定实例中 锡二侠嗅篓瞪睹倡参搭贴嫩臀谚撑墙牢刻么身笺旦慢破综桅屎侯靡航磨千第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件用于查询和检索数据的示例演示: 创建 Windows 应用程序示
33、例的步骤“乘客详细信息”窗体 u创建一个名为“Example 1”的 Windows 应用程序u将 Form1.cs 更改为 frmPassenger.csu设计窗体,如图 2.3 所示u命名控件u将以下命名空间包含在项目中u在类声明部分声明以下变量using System.Data;using System.Data.SqlClient;private SqlConnection objSqlConnection;private SqlDataAdapter objDataAdapter; 妙班棕沈医芒先剁陨问扔森拐柞湛蓟川容瞩烂滨改畏宝狙咖化满肤辽舌砸第二讲ADONET查询和检索数据ppt
34、课件第二讲ADONET查询和检索数据ppt课件用于查询和检索数据的示例u将以下代码添加到 frmPassenger 的 Load 事件中。u在 btnAdd 按钮的 Click 事件中添加以下代码。private void frmPassenger_Load(object sender, System.EventArgs e)this.cboSex.Items.Add(“男);this.cboSex.Items.Add(“女); objSqlConnection = new SqlConnection(server=MYSERVER;database=Flights; uid=sa; pwd
35、= playware;);向组合框中添加值创建 Sql 连接private void btnAdd_Click(object sender, System.EventArgs e) try objSqlConnection.Open();DataSet objDataSet = new DataSet();objDataAdapter = new SqlDataAdapter(Select * from Passenger,objSqlConnection);objDataAdapter.Fill(objDataSet,Passenger); objDataAdapter.InsertComm
36、and = objSqlConnection.CreateCommand();打开 Sql 连接新建数据集填充数据集objDataAdapter.InsertCommand.CommandText =INSERT INTO Passenger(FlightCode,PassportNo”+”,Name,SeatNo, Sex,Age) +VALUES(+this.txtFlightCode.Text+,“ +this.txtPassport.Text+, +this.txtName.Text+,“ +this.txtSeatNo.Text+,“ +this.cboSex.SelectedIte
37、m.ToString()+,“ +this.txtAge.Text+); DataTable objDataTable = new DataTable(); objDataSet.Tables.Add(objDataTable); DataRow objDataRow = objDataSet.Tables0.NewRow();创建显式、可重用的 INSERT 命令objDataRowFlightCode=this.txtFlightCode.Text;objDataRowPassportNo=this.txtPassport.Text;objDataRowName=this.txtName.
38、Text; objDataRowSeatNo=Convert.ToInt32(this.txtSeatNo.Text);objDataRowSex=this.cboSex.SelectedText;objDataRowAge=Convert.ToInt32(this.txtAge.Text);objDataSet.Tables0.Rows.Add(objDataRow);/ objDataAdapter.Update(objDataSet,Passenger); Application.DoEvents(); MessageBox.Show(“已插入行);this.ClearFields();
39、 catch(SqlException ex) . . .状凿醒息捌冷焦峻砒巧崭做绒哩慢土纵吭浇柜膛搀湾腮氖糟诚擎根窗蹭疲第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件用于查询和检索数据的示例u在 btnDelete 按钮的 Click 事件中添加下列代码。private void btnDelete_Click(object sender, System.EventArgs e) try objSqlConnection.Open(); DataSet objDataSet = new DataSet(); objDataAdapter = new Sq
40、lDataAdapter(Select * from Passenger,objSqlConnection); objDataAdapter.Fill(objDataSet,Passenger); objDataAdapter.DeleteCommand = objSqlConnection.CreateCommand(); objDataAdapter.DeleteCommand.CommandText = DELETE from Passenger where FlightCode=+ this.txtFlightCode.Text+; DataTable objDataTable = n
41、ew DataTable(); objDataSet.Tables.Add(objDataTable);打开连接打开连接创建显式、可重用的创建显式、可重用的 DELETE 命令。命令。 foreach(DataRow dr in objDataSet.Tables0.Rows) if(drFlightCode.Equals(this.txtFlightCode.Text) DataRow objDataRow = dr;this.txtFlightCode.Text = objDataRowFlightCode.ToString();this.txtPassport.Text = objDat
42、aRowPassportNo.ToString();this.txtName.Text = objDataRowName.ToString();this.txtSeatNo.Text = objDataRowSeatNo.ToString();this.cboSex.SelectedText = objDataRowSex.ToString();this.txtAge.Text = objDataRowAge.ToString();objDataRow.Delete(); 删除数据集中的记录删除数据集中的记录objDataAdapter.Update(objDataSet,Passenger)
43、; objDataSet.AcceptChanges(); MessageBox.Show(“已删除记录); ClearFields(); break;else MessageBox.Show(“未找到记录); break; catch(SqlException ex) . . .如果未找到记录,则显示一条错误消息如果未找到记录,则显示一条错误消息师娃翼实隋淘番隔毙脾尝刮侈狡抚稀眩膏做层厢澳膝弄痰嫡队蛰泄拼霉败第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件用于查询和检索数据的示例u在项目中添加 ClearFields() 方法u在 btnCancel 按钮
44、的 Click 事件中添加代码private void ClearFields()this.txtName.Text=;this.txtFlightCode.Text=;this.txtAge.Text=;this.txtPassport.Text=;this.txtSeatNo.Text=;this.cboSex.Text=;private void btnCancel_Click(object sender, System.EventArgs e)this.Close();浙贪栽鸳琉蛊绑踏炊塔斩鸭痴义狂秆逝璃脚钒姬淳加声埔垂牵蹄疑擦吮首第二讲ADONET查询和检索数据ppt课件第二讲ADO
45、NET查询和检索数据ppt课件总结u在 DataSet 对象内表示的数据是数据库的部分或全部的断开式内存副本uDataAdapter 对象用来填充数据集和用更新集到数据库,这样方便了数据库和数据集之间的交互u类型化数据集对象是 DataSet 类的派生类的实例,这些类都基于 XML 结构uDataTable 表示一个内存数据表,而 DataColumn 表示 DataTable 中列的结构uDataView 是 DataTable 中存储的数据的表示层uDataReader 对象提供只进、只读和连接式数据访问,并要求使用专用的数据连接uDataReader 对象提供检索强类型化数据的方法射哇淋啼毖笋匆滓曾厄晰蛰隋孵捡卯吭素息明信功金攘烈犁办朽为浙另辣第二讲ADONET查询和检索数据ppt课件第二讲ADONET查询和检索数据ppt课件