已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章ADO NET数据库编程 6 内容提要 本章首先介绍ADO NET的结构 详细介绍ADO NET的Connection对象 Command对象 DataReader对象 DataAdapter对象和DataSet对象 介绍常用的数据源控件和数据绑定控件 网络数据库编程基础 在 NET框架中 包含了自己的数据访问技术ADO NET ADO NET的名称起源于ADO ActiveXDataObjects ADO NET包含一组托管的类使得Web应用程序可以连接数据源 执行命令以及管理非连接的数据 ASP NET同样使用服务器控件来进行数据处理 ASP NET中提供两类数据控件 一类是数据源 DataSource 控件 另一类是数据绑定 Data bound 控件 6 1ADO NET的结构 ADO NET有两个核心组件 NET数据提供程序和DataSet NET数据提供程序 表6 1 NET数据提供程序的四个核心对象 SQLServer NET数据提供程序 对应SQLServer NET的4个核心对象分别是 SqlConnection SqlCommand SqlDataReader和SqlDataAdapter 这4个对象包含在System Data SqlClient命名空间中 需要将这个命名空间引入到文件中 SQLServer NET数据提供程序对SQLServer数据库的底层操作进行了封装 可以更加快捷地访问SQLServer数据库 OLEDB NET数据提供程序 对应OLEDB NET的4个核心对象分别是 OleDbConnection OleDbCommand OleDbDataReader和OleDbDataAdapter 这4个对象包含在System Data OleDb命名空间中 需要将这个命名空间引入到文件中 目前主要用来访问Access Foxpro等简单的数据源 OracleDB NET数据提供程序 对应OracleDB NET的4个核心对象分别是 OracleConnection OracleCommand OracleDataReader和OracleDataAdapter 这4个对象包含在System Data OracleClient命名空间中 需要将这个命名空间引入到文件中 ODBC NET数据提供程序 对应ODBC NET的4个核心对象分别是 OdbcConnection OdbcCommand OdbcDataReader和OdbcDataAdapter 这4个对象包含在System Data Odbc命名空间中 需要将这个命名空间引入到文件中 通过ODBC建立的数据源都可以通过ODBC NET数据提供程序访问 DataSet对象简介 DataSet是ADO NET的核心组件 内部用XML描述数据 具有平台无关性 DataSet包含一个或多个DataTable对象的集合 这些对象由数据行和数据列以及DataTable对象中数据的主键 外键 约束和关系信息等组成 DataSet通过DataAdapter对象从数据源得到数据 DataAdapter是连接DataSet和数据库的一个桥梁 因此命名为 数据适配器 Connection对象 用于建立数据库连接 常用方法有Open 和Close DataSource属性用来获取数据源的服务器名或文件名 Provider属性用来指定数据库驱动程序 ConnectionString属性用来指定连接字符串 案例名称 使用Connection对象程序名称 6 01 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open Message Text Conn State ToString Conn Close 使用Connection对象的构造函数 案例名称 使用Connection对象的构造函数程序名称 6 02 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn Conn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open Message Text Conn State ToString Conn Close 连接SQLServer数据库的常用参数 使用Connection对象连接SQLServer数据库 案例名称 使用Connection对象连接SQLServer数据库程序名称 6 03 aspxvoidPage Load Objectsender EventArgse SqlConnectionConn Conn newSqlConnection server localhost database testdb uid sa pwd SQLServer身份验证 Conn newSqlConnection DataSource ZXG IntegratedSecurity true InitialCatalog testdb Windows身份验证Conn Open Message Text Conn State ToString Conn Close Command对象 建立数据连接以后 利用Command对象来执行命令并从数据源返回结果 常用方法 ExecuteReader ExecuteScalar 和ExecuteNonQuery Command对象常用的构造函数包括两个参数 1个是要执行的SQL语句 另一个是已经建立的Connnection对象 基本语法是 OleDbCommandComm newOleDbCommand select fromgrade Conn ExecuteReader方法 主要用来执行基本SQL查询语句 要求SQL返回记录集 案例名称 使用ExecuteRader方法程序名称 6 04 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open OleDbCommandComm newOleDbCommand select fromgrade Conn OleDbDataReaderdr Comm ExecuteReader dg DataSource dr dg DataBind Conn Close 案例名称 使用Like子句实现模糊查询程序名称 6 05 aspxvoidsubmit click Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open stringsql select fromgrade if mytext Text sql select fromgradewhere姓名like mytext Text Message Text sql OleDbCommandComm newOleDbCommand sql Conn OleDbDataReaderdr Comm ExecuteReader dg DataSource dr dg DataBind Conn Close 请输入被查询的人名关键字 ExecuteScalar方法 该方法返回单个值 从相关的查询中返回第一行和第一列的值 Object类型 一般用来执行聚合函数 案例名称 使用ExecuteScalar方法程序名称 6 06 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open StringstrSQL selectavg 数学 fromgrade OleDbCommandComm newOleDbCommand strSQL Conn Doubled Double Comm ExecuteScalar Message Text 所有人数学的平均成绩为 d ToString 分 Conn Close ExecuteNonQuery方法 用于执行不需要返回结果的命令 并返回受影响的行数 案例名称 使用ExecuteNonQuery方法执行Insert语句程序名称 6 07 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open StringstrSQL insertintograde 学号 姓名 数学 values 99 小张 100 OleDbCommandComm newOleDbCommand strSQL Conn Comm ExecuteNonQuery Conn Close Response Write 操作成功 ADO NET事务处理 事务是一些事件的集合 执行一条SQL语句可理解成一个事件 ADO NET使用Connection对象的BeginTransaction 方法来声明事务开始 利用Transaction对象的Commit 方法来提交事务 利用Transaction对象的Rollback 方法来回滚事务 使用事务的基本格式 案例名称 使用事务的基本格式程序名称 6 08 aspxvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Conn ConnectionString Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open OleDbCommandComm newOleDbCommand OleDbTransactionTrans Trans Conn BeginTransaction Comm Connection Conn Comm Transaction Trans try Comm CommandText UPDATEgradeSET数学 100WHERE姓名LIKE 周 Comm ExecuteNonQuery Comm CommandText UPDATEgradeSET数学 60WHERE姓名LIKE 张 Comm ExecuteNonQuery Trans Commit Response Write 事务执行成功 catch Exceptionex Trans Rollback Response Write 出现错误 事务已经回滚 finally Conn Close DataReader对象 取DataReader对象的数据 有两种方法 1 通过和GridView等数据控件绑定 直接输出 使用方法如程序6 04 aspx 2 另一种方法是利用循环将其数据取出 使用DataReader对象输出数据 案例名称 使用DataReader对象输出数据程序名称 6 09 aspxprotectedvoidPage Load objectsender EventArgse OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open StringstrSQL select fromgrade OleDbCommandComm newOleDbCommand strSQL Conn OleDbDataReaderdr Comm ExecuteReader stringhtml html html 学号 html 姓名 html 数学 html try while dr Read 读出每一条记录html html dr 学号 ToString html dr 姓名 ToString html dr 数学 ToString html html catch Exceptionex Response Write ex Message finally dr Close Conn Close 关闭链接 Response Write html DataAdapter对象 DataAdapter对象用于从数据源中获取数据 填充DataSet中的表和约束 并将对DataSet的更改提交回数据源 DataAdapter对象有4个重要属性 即SelectCommand InsertCommand UpdateCommand DeleteCommand 都是Command对象 其中SelectCommand用来执行查询 其他三个用于执行数据操作 除了SelectCommand属性 其他三个属性都需使用 ExecuteNonQuery 方法调用 使用DataAdapter对象的构造方法 案例名称 使用DataAdapter对象构造方法程序名称 6 10 aspxprotectedvoidPage Load Objectsender EventArgse OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb stringsql select fromgrade Conn Open OleDbDataAdapterda newOleDbDataAdapter sql Conn 执行SQLDataSetds newDataSet da Fill ds grade 将da对象中的数据填充到ds对象中 并起别名 grade dg DataSource ds Tables grade DefaultView dg DataBind Conn Close 使用DataAdapter对象的SelectCommand属性 案例名称 使用DataAdapter对象的SelectCommand属性程序名称 6 11 aspxvoidPage Load ObjectSrc EventArgsE OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb stringstrSQL select fromgrade OleDbCommandComm newOleDbCommand strSQL Conn OleDbDataAdapterda newOleDbDataAdapter da SelectCommand Comm Conn Open DataSetds newDataSet da Fill ds grade dg DataSource ds Tables grade DefaultView dg DataBind Conn Close 案例名称 使用DataAdapter对象的InsertCommand属性程序名称 6 12 aspxvoidPage Load ObjectSrc EventArgsE OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb stringstrInsertSQL INSERTINTOgrade 学号 姓名 数学 VALUES 111 盖茨 59 stringstrSelectSQL SELECT FROMgradeWHERE学号 111 stringstrUpdateSQL UPDATEgradeSET数学 60WHERE学号 111 创建Command对象OleDbCommandInsertComm newOleDbCommand strInsertSQL Conn OleDbCommandSelectComm newOleDbCommand strSelectSQL Conn OleDbCommandUpdateComm newOleDbCommand strUpdateSQL Conn 创建DataAdapter对象daOleDbDataAdapterda newOleDbDataAdapter Conn Open da SelectCommand SelectComm da UpdateCommand UpdateComm da InsertCommand InsertComm 创建并填充DataSetDataSetds newDataSet da Fill ds grade1 da InsertCommand ExecuteNonQuery da Fill ds grade2 da UpdateCommand ExecuteNonQuery da Fill ds grade3 将DataSet绑定到GridView控件dg1 DataSource ds Tables grade1 DefaultView dg2 DataSource ds Tables grade2 DefaultView dg3 DataSource ds Tables grade3 DefaultView dg1 DataBind dg2 DataBind dg3 DataBind Conn Close 关闭连接 DataSet对象 DataSet封装在命名空间 System Data 中 它是从数据源中检索到的数据在内存中的缓存 DataSet中可以包含任意数量的DataTable 表示内存中数据的一个表 且每个DataTable对应数据库中的相关数据表和视图 通过DataAdapter的Fill方法 将DataAdapter中SelectCommand的结果填充到DataSet对象中 而且可以填充多个表 利用别名来区分 比如 da Fill ds grade1 的功能是将da对象中的数据填充到ds对象中 并起别名 grade1 案例名称 自动生成DataSet对象程序名称 6 13 aspxvoidPage Load Objectsender EventArgse DataSetmyds newDataSet DataTablemydt newDataTable Squares 创建一个DataTableDataRowmydr mydt Columns Add newDataColumn 数字 typeof Int32 mydt Columns Add newDataColumn 平方 typeof Int32 for inti 0 i 2020 3 17 30 可编辑 操作DataSet对象 案例名称 操作DataSet对象程序名称 6 14 aspxvoidPage Load ObjectSrc EventArgsE OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb Conn Open stringstrSQL select fromgrade OleDbDataAdapterda newOleDbDataAdapter strSQL Conn DataSetds newDataSet da Fill ds grade DataTabledt ds Tables grade DataRowrow dt NewRow row 学号 199 row 姓名 小布什 row 数学 58 dt Rows Add row OleDbCommandBuildercb newOleDbCommandBuilder da 自动生成Adapter的Command命令 da Update ds grade 为DataSet中每个已插入 已更新或已删除的行调用相应的INSERT UPDATE或DELETE语句 dg DataSource ds Tables grade DefaultView dg DataBind Conn Close DataView对象 DataView对象定义了DataTable的数据查看方式 表示用于排序 筛选等的DataTable的可绑定数据的自定义视图 封装在命名空间 Syste Data 中 默认查看方式是将数据以表格的形式排列 且排列顺序遵从从数据库表中取出数据时的排列顺序 也可以通过DataView对象使数据按照某些规律显示 使用DataView对象 案例名称 使用DataView对象程序名称 6 15 aspxvoidPage Load ObjectSrc EventArgsE OleDbConnectionConn newOleDbConnection Provider Microsoft Jet OLEDB 4 0 DataSource Server MapPath person mdb StringstrSQL select fromgrade OleDbCommandComm newOleDbCommand strSQL Conn OleDbDataAdapterda newOleDbDataAdapter da SelectCommand Comm Conn Open DataSetds newDataSet da Fill ds grade DataViewdv newDataView ds Tables grade dv RowFilter 数学 60 dv Sort 学号DESC 数学DESC Response Write 满足条件的记录有 dv Count 条 dg DataSource dv dg DataBind Conn Close DataSet和DataReader的选择 在决定应用程序应使用DataReader还是使用DataSet时 应考虑应用程序所需的功能类型 DataSet用于执行以下功能 在应用程序中将数据缓存在本地 以便可以对数据进行处理 如果只需要读取查询结果 DataReader是更好的选择 从XMLWeb服务对数据进行远程处理 与数据进行动态交互 对数据进行排序 筛选或组合并关联来自多个源的数据 对数据执行大量的处理 而不需要与数据源保持打开的连接 从而将该连接释放给其他客户端使用 6 2数据源控件 数据源控件是一组 NET框架类 便于数据存储和数据绑定控件之间的双向绑定 ASP NET包含几种类型的数据源控件 这些数据源控件可以从不同的数据源检索数据 并将其提供给数据绑定控件 数据源控件没有呈现形式 即在运行时是不可见的 而是用来表示特定的后端数据存储 内置的数据源控件 连接到数据库 在连接到数据库时 需要指定数据源控件的几个属性 最重要的就是控件的ID以及 runat server 另外 还要指明位于哪个服务器上的哪个数据库以及登录该服务器的用户名和密码 这些属性都包含在连接字符串中 ASP NET的数据库编程虽然看上去比较复杂 不过通过开发环境中的数据库向导 可以很容易地完成网络数据库的连接和数据显示 例 SqlDataSource aspx 6 3数据绑定控件 数据绑定 的意思是将控件与存储在数据源中的信息绑定在一起 数据绑定控件把数据源提供的数据作为标记 发给请求的客户端浏览器 然后将数据呈现在浏览器页面上 ASP NET服务器控件有些可以作为数据绑定控件来使用 这种绑定可以通过修改该控件的DataSourceID属性使之连接到数据源控件上 数据绑定概述 ListControl类控件 与数据库数据显示有关的属性主要包括 AppendDataBoundItem DataSourceID DataSource DataTextField DataValueField AppendDataBoundItem用于将数据绑定项追加到静态声明的列表项上 DataTextField绑定的字段用于显示列表项 DataValueField绑定的字段用于设置列表项的值 例 DropDownList控件数据绑定 在DropDownList中将显示tb Admin表的AdminName字段值 而列表项的值对应AdminID字段值 源程序 DropDownListSqlDS aspx ASP NET数据绑定控件 主要包括 GridViewDetailsViewFormViewListViewRepeater和DataList是1 1版就提供的控件 内置功能较弱 需要自己实现分页 排序 数据事件等功能 GridView控件 GridView控件用于显示二维表格形式的数据 支持以下功能 绑定到数据源控件内置排序功能内置更新和删除功能内置分页功能内置行选择功能对GridView对象模型进行编程访问以动态设置属性和处理事件诸如CheckBoxField和ImageField等新的列类型用于选择 更新和删除的多个数据键字段可通过主题和样式自定义外观 GridView控件的列字段类型 TemplateField模板对应表 GridView控件应用举例 对GridView中的数据进行分页和排序利用GridView控件编辑 删除数据自定义超链接列自定义图像列显示主从表 对GridView中的数据进行分页和排序 要实现分页功能需要设置属性AllowPaging的值为True 要实现排序功能需要设置属性AllowSorting的值为True 例 GridView sort aspx 利用GridView控件编辑 删除数据 启用编辑 和 启用删除 可提供编辑和删除数据功能 绑定至GridView的数据源控件也要提供更新 删除功能 表的主键不能被编辑 GridView的属性DataKeyNames包含了表的主键信息 例 GridView link aspx 自定义超链接列 HyperLinkField列的属性DataNavigateUrlFields对应页面显示到超链接的NavigateUrl属性 属性DataNavigateUrlFormatString确定目标URL的格式 其中 0 在网页浏览时会被DataNavigateUrlFields对应的字段值代替 例 GridView img aspx aaa 0 属性DataTextField对应页面显示到超链接的Text属性 自定义图像列 表字段存储了对应图片的路径 要在GridView中显示图片 只需设置ImageField列的DataImageUrlField属性 若在存储时仅存储图片的文件名 则还需配合使用属性DataImageUrlFormatString 例如 假设图片统一存放在网站根路径下的img文件夹中 字段Image存储图片的文件名 则设置如下 显示主从表 在同一页显示主从表当单击 选择 按钮时 GridView SelectedValue返回选择行所对应的主键值 再将该值传递给另一数据源控件中查询语句的参数 在不同页显示主从表当单击主表网页中的链接时 相应的查询字符串传递到从表网页 再获取其中的值赋给where表达式的参数 例 GridView link aspxGridView img aspx Detai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重力卫星精密测量-洞察与解读
- 高层建筑防火材料创新-第1篇-洞察与解读
- 游戏化认知训练-洞察与解读
- 能源转型公众接受度-洞察与解读
- 农产品经纪人岗前岗位责任制考核试卷含答案
- 桥式起重机司机安全意识强化测试考核试卷含答案
- 光伏组件制造工安全生产意识知识考核试卷含答案
- 化工蒸馏工操作技能测试考核试卷含答案
- 镀锡工岗前复测考核试卷含答案
- 脆性糖尿病患者血糖波动与肠促胰素水平相关性研究
- 2026年乡镇高层次人才引进笔试题库与解析
- 2026云南昆明市禄劝县第一人民医院昆明市延安医院禄劝医院编外人员招聘19人笔试备考试题及答案解析
- 血透室职业暴露应急处理演练脚本
- 2026年人员代理合同(1篇)
- 2026年甘肃省陇南市宕昌县人民法院招聘聘用制司法辅助人员笔试备考试题及答案解析
- APQC跨行业流程分类框架 (8.0 版)( 中文版-2026年4月)
- 凤凰出版传媒集团招聘笔试题库
- GB/T 18570.9-2025涂覆涂料前钢材表面处理表面清洁度的评定试验第9部分:水溶性盐的现场电导率测定法
- 2025年浙江省综合性评标专家库评标专家考试历年参考题库含答案详解
- 雨课堂学堂在线学堂云《自然辩证法概论( 武汉科技大)》单元测试考核答案
- 2025年7月浙江省普通高中学业水平考试化学试卷(含答案)
评论
0/150
提交评论