版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1ADONET查询和检索数据查询和检索数据第1页/共28页第2页/共28页第3页/共28页DataSet是存储从数据库检索到的数据的对象是零个或多个表对象的集合,这些表对象由数据行和列、约束和有关表中数据关系的信息组成不直接与数据库交互既可容纳数据库的数据,也可以容纳非数据库的数据源DataSet 类的层次结构DataSetDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollectionDataTable第4页/共28页DataTableCollection 包含特定数据集的所有 DataTable 对象D
2、ataTable 表示数据集中的一个表DataColumnCollection 表示 DataTable 对象的结构DataRowCollection 表示 DataTable 对象中的实际数据行DataColumn 表示 DataTable 对象中列的结构DataRow 表示 DataTable 对象中的一个数据行DataSet 层次结构中的类第5页/共28页客户端服务器将数据发送到数据集客户端修改数据集将数据集传递给客户端将修改后的数据集传递给服务器客户端向服务器请求数据第6页/共28页数据集的类数据集的类型型类型化数据集非类型化数据集它是一个生成类,继承了基类 DataSet 的所有方法
3、、事件和属性表和列只能以集合的形式公开,而不能用于借助 XML 结构文件派生新类使用类型化数据集访问列string employeeName;employeeName = dsEmployees.Emp0.EmpName;从 dsEmployees 数据集的 Emp 表中第一个记录返回 EmpName 列,然后将其存储在 employeeName 字符串变量中使用非类型化数据集访问列 string employeeName;employeeName = dsEmployees.TablesEmp.Rows0EmpName;使用 Tables 集合返回 EmpName 列第7页/共28页属性说明
4、DataSetName 用于获取或设置当前数据集的名称Tables 用于检索数据集中包含的表集合方法说明Clear清除数据集中包含的所有表的所有行HasChanges 返回一个布尔值,指示数据集是否更改了DataSet empDS = new DataSet(EmployeeDetails);第8页/共28页属性说明Columns 表示列的集合或 DataTable 包含的 DataColumnConstraints 表示特定 DataTable 的约束集合DataSet 表示 DataTable 所属的数据集PrimaryKey 表示作为 DataTable 主键的字段或 DataColum
5、nRows表示行的集合或 DataTable 包含的 DataRowHasChanges 返回一个布尔值,指示数据集是否更改了方法说明AcceptChanges提交对该表所做的所有修改NewRow 添加新的 DataRow事件说明ColumnChanged 修改该列中的值时激发该事件RowChanged 成功编辑行后激发该事件RowDeleted 成功删除行时激发该事件DataTable objStudentTable = new DataTable(Students);创建 DataTable 对象的实例DataSet studentDS = new DataSet();DataTable
6、objStudentTable = studentDS.Tables.Add(Students);创建 DataTable 的实例,然后将其添加到数据集的 Tables 集合中第9页/共28页属性属性说明说明AllowDBNull 表示一个值,指示对于该表中的行,此列是否允许表示一个值,指示对于该表中的行,此列是否允许 null 值值ColumnName表示指定表示指定 DataColumn 的名称的名称DataType 表示指定表示指定 DataColumn 对象中存储的数据类型对象中存储的数据类型DefaultValue 表示新建行时该列的默认值表示新建行时该列的默认值Table表示表示
7、DataColumn 所属的所属的 DataTable 的名称的名称Unique 表示表示 DataColumn 的值是否必须是唯一的的值是否必须是唯一的DataTable objStudentTable = new DataTable(Students);DataColumn objStudentNumber = objStudentTable.Columns.Add ( StudentNo ,typeof(Int32);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTa
8、ble.Columns.Add(StudentName,typeof(Int32);objStudentTable.Columns.Add(StudentMarks,typeof(Double);使用多个 DataColumn 对象创建 DataTable第10页/共28页属性属性说明说明Item表示表示 DataRow 的指定列中存储的值的指定列中存储的值RowState 表示行的当前状态表示行的当前状态Table表示用于创建表示用于创建 DataRow 的的 DataTable 的名称的名称方法方法说明说明AcceptChanges 用于提交自上次调用了用于提交自上次调用了 AcceptC
9、hanges 之后对该行所做的所有修改之后对该行所做的所有修改Delete Deletes the DataRow 用于删除用于删除 DataRowRejectChanges 用于拒绝自上次调用了用于拒绝自上次调用了 AcceptChanges 之后对之后对 DataRow 所做的所有修改所做的所有修改/定义表结构,为Students表添加学号、姓名、分数三列DataTable objStudentTable = new DataTable(Students);DataColumn objStudentNumber = new DataColumn(); objStudentNumber.Da
10、taType = objStudentTable.Columns.Add ( StudentNo ,typeof(string);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTable.Columns.Add(StudentName,typeof(string);objStudentTable.Columns.Add(StudentMarks,typeof(Double);/向表中填充数据DataRow objStudentRow;objStudentRow= objSt
11、udentTable.NewRow();objStudentRowStudentNo=101;objStudentRow“StudentName”=“张三;objStudentRowStudentMarks=55;objStudentTable.Rows.Add(objStudentRow);在 DataTable 对象中新建 DataRow第11页/共28页objStudentTable.PrimaryKey = new DataColumnobjStudentTable.ColumnsStudentNo; 设置单个列为 DataTable 的主键objStudentTable.Primar
12、yKey = new DataColumn objStudentTable.ColumnsStudentNo, objStudentTable.ColumnsStudentName ; 为 DataTable 对象设置复合主键第12页/共28页Constraint是对表中数据施加的限制或规则集决定表中可以存储的数据用于维护数据的正确性和有效性约束的类约束的类型型ForeignKeyConstraint UniqueConstraint 第13页/共28页DataView用作 DataTable 中存储的数据的表示层提供对 DataTable 进行排序、筛选和搜索的自定义视图允许 WinForm
13、s 控件进行数据绑定可用于查看 DataTable 中存储的数据的子集数据绑定是为了在控件上显示数据库表中存储的数据,而将应用程序的控件与数据表的行进行绑定的过程属性说明Item用于从指定的表中获取一行数据RowFilter 用于获取或设置表达式,该表达式用于筛选可以在 DataView 中查看的行RowStateFilter 用于获取 DataView 的行状态筛选器Table用于表示源 DataTable方法说明AddNew 向 DataView 添加新行Delete用于删除指定索引处的行DataView objStudentView = new DataView(objStudentTa
14、ble);objStudentView.RowFilter = StudentMarks 60;for(int ctr =0; ctr objStudentView.Count; ctr+)MessageBox.Show(objStudentViewctrStudentNo.ToString();创建 DataView 并对该视图应用某种筛选器第14页/共28页第15页/共28页数据命令DataAdapterDataSetDataTable DataRow 集合DataColumn 集合Constraint 集合填充脱机数据库非永久连接第16页/共28页SQL 数据提供程序SqlDataAda
15、pter OLE DB 数据提供程序OleDbDataAdapter Oracle 数据提供程序OracleDataAdapter ODBC 数据提供程序OdbcDataAdapter .NET 提供程序及其 DataAdapter 类DataAdapter 类的属性和方法属性说明AcceptChangesDuringFill 决定在把行复制到 DataTable 中时对行所做的修改是否可以接受TableMappings 容纳一个集合,该集合提供返回行和数据集之间的主映射方法说明Fill用于添加或刷新数据集,以便使数据集与数据源匹配FillSchema 用于在数据集中添加 DataTable,
16、以便与数据源的结构匹配Update 将DataSet里面的数值存储到数据库服务器上第17页/共28页DataAdapter 类的属性和方法属性说明InsertCommand 表示用于在数据库中插入新记录的 SQL 语句或存储过程UpdateCommand 表示用于在数据库中更新记录的 SQL 语句或存储过程DeleteCommand 表示用于从数据库中删除记录的 SQL 语句或存储过程SelectCommand 表示用于从数据库中选择记录的 SQL 语句或存储过程事件说明RowUpdated 在对数据源执行更新命令之后的过程中激发该事件RowUpdating 在对数据源执行命令更新之前的过程中
17、激发该事件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();OleDbDataAdapter objOleAdapter = new OleDbD
18、ataAdapter();objOleAdapter.SelectCommand = new OleDbCommand(query,objOleConnection);objOleAdapter.Fill(objDataSet,Students);传递给 OleDbAdapter 对象将数据填充到数据集中第18页/共28页SqlConnection objSqlConnection = new SqlConnection (SERVER=MYSERVER;database=Students;uid=sa; password=playware);SqlDataAdapter objSqlAdap
19、ter = new SqlDataAdapter(SELECT * from Student,objSqlConnection);objSqlConnection.Open();DataSet objDataSet = new DataSet();objSqlAdapter.Fill(objDataSet,Students);创建与 SQL Server 数据库的连接,并用相应的值填充数据集第19页/共28页第20页/共28页DataReader只读只进记录集查询只读和只进访问 需要永久连接.NET 数据提供程序及其 DataReader 类.NET Framework 数据提数据提供程序供程
20、序DataReader 类类SQL 数据提供程序SqlDataReader OLE DB 数据提供程序OleDbDataReader Oracle 数据提供程序OracleDataReader ODBC 数据提供程序OdbcDataReader 第21页/共28页属性说明FieldCount 返回当前行中的列数HasRows 容纳一个指示读取器是否含有一行或多行的值IsClosed 表示 DataReader 是否关闭RecordsAffected 表示执行 SQL 语句之后修改、插入或删除的行数方法说明Close 用于关闭 DataReader 对象GetBoolean 用于获取特定列的布尔
21、值GetInt32 用于返回列的整型值DataReader 对象的属性和方法方法说明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 Sql
22、Command(query,objSqlConnection);objSqlConnection.Open();SqlDataReader objSqlReader = objSqlCommand.ExecuteReader();while(objSqlReader.Read() MessageBox.Show(“学号: +objSqlReader.GetValue(0);执行给定查询、从数据流中检索行,并将结果集绑定到 DataReader 类的给定实例中 第22页/共28页演示: 创建 Windows 应用程序示例的步骤“乘客详细信息”窗体 u 创建一个名为“Example 1”的 Win
23、dows 应用程序u 将 Form1.cs 更改为 frmPassenger.csu 设计窗体,如图 2.3 所示u 命名控件u 将以下命名空间包含在项目中u 在类声明部分声明以下变量using System.Data;using System.Data.SqlClient;private SqlConnection objSqlConnection;private SqlDataAdapter objDataAdapter; 第23页/共28页private void frmPassenger_Load(object sender, System.EventArgs e)this.cboSe
24、x.Items.Add(“男);this.cboSex.Items.Add(“女);objSqlConnection = new SqlConnection(server=MYSERVER;database=Flights; uid=sa; pwd = playware;);向组合框中添加值创建 Sql 连接private void btnAdd_Click(object sender, System.EventArgs e) try objSqlConnection.Open();DataSet objDataSet = new DataSet();objDataAdapter = new
25、SqlDataAdapter(Select * from Passenger,objSqlConnection);objDataAdapter.Fill(objDataSet,Passenger); objDataAdapter.InsertCommand = objSqlConnection.CreateCommand();打开 Sql 连接新建数据集填充数据集objDataAdapter.InsertCommand.CommandText =INSERT INTO Passenger(FlightCode,PassportNo”+”,Name,SeatNo, Sex,Age) +VALUE
26、S(+this.txtFlightCode.Text+,“ +this.txtPassport.Text+, +this.txtName.Text+,“ +this.txtSeatNo.Text+,“ +this.cboSex.SelectedItem.ToString()+,“ +this.txtAge.Text+); DataTable objDataTable = new DataTable(); objDataSet.Tables.Add(objDataTable); DataRow objDataRow = objDataSet.Tables0.NewRow();创建显式、可重用的
27、INSERT 命令objDataRowFlightCode=this.txtFlightCode.Text;objDataRowPassportNo=this.txtPassport.Text;objDataRowName=this.txtName.Text; objDataRowSeatNo=Convert.ToInt32(this.txtSeatNo.Text);objDataRowSex=this.cboSex.SelectedText;objDataRowAge=Convert.ToInt32(this.txtAge.Text);objDataSet.Tables0.Rows.Add(
28、objDataRow);/ objDataAdapter.Update(objDataSet,Passenger); Application.DoEvents(); MessageBox.Show(“已插入行);this.ClearFields(); catch(SqlException ex) . . .第24页/共28页private void btnDelete_Click(object sender, System.EventArgs e) try objSqlConnection.Open(); DataSet objDataSet = new DataSet(); objDataA
29、dapter = new SqlDataAdapter(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 = new DataTable(); objDataSet.Tables.Add(objDataTable);打开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024新城区基础设施应急抢修服务合同2篇
- 2024施工合同规范:生态景观工程施工与维护合同3篇
- 2024年鱼池转让与养殖产业一体化发展合作协议3篇
- 2024年网络商城品牌授权供货合同
- 一类医疗器械地区经销协议模板版B版
- 分娩后皮肤知识培训课件
- 2024年集体土地农业用途承包合同
- 2024战略采购项目合作合同版B版
- 2024模具生产自动化改造项目合同3篇
- 2024年贷款车辆使用及车辆租赁与销售管理协议3篇
- 危险化学品安全监管执法培训课件
- 保洁供方管控要点
- 空气源热泵冷暖空调、热水项目施工方案
- 《行政组织学》期末复习指导
- 基于深度学习的医学图像增强与生成
- 2023《楼体亮化工程施工合同》电子版
- 2023取卵术相关风险及处理对策
- 跌倒-坠床不良事件鱼骨图分析
- 发展汉语初级口语I-第18课课件
- 海关HS编码对照表
- 原木桩驳岸施工方案
评论
0/150
提交评论