版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本部分重点、难点理解ADO.NET对象模型定义。掌握SqlConnection对象与Command对象。掌握DataReader、DataSet、DataTable、DataAdapter及DataView对象。掌握连接与操作Sql Server数据库的方法。掌握ADO.NET中使用XML文件的方法。第1页,共44页。1.1 ADO.NET基本概念ADO.NET是.NET Framework用于访问数据的组件。ASP.NET通过ADO.NET操作数据库。如图:ADO.NET的一个优点是可以离线操作数据库,应用程序只要在需要取得数据或更新数据的时候猜对数据源进行联机,所以可以减少应用程序对服务器
2、资源的占用,提高应用程序的效率。ASP.NETADO.NET数据库第2页,共44页。1.2 ADO.NET对象模型.NET Framework针对不同的数据库,设计了下面四种数据提供程序: (1)SQL Server.NET Framework数据提供程序 (2)OLE DB. NET Framework数据提供程序 (3)ODBC. NET Framework数据提供程序 (4)Oracle. NET Framework数据提供程序第3页,共44页。ADO.NET对象模型第4页,共44页。(1) SQLConnection 建立与特定数据源的连接属性说明Data Source设置要连接的SQ
3、L SERVER服务器名称或IPServerDatabase要连接的数据库Initial catalogIntegrated Secrity指定是否使用信任连接Trusted _ ConnectionUser ID登陆数据库的账号UidPassword登陆数据库的密码pwdConnection Timeout连接超时第5页,共44页。SQL SERVER数据库的两种连接模式1、混合模式连接使用此种连接模式必须输入登录名和登陆口令。例如:string myconnection = server=(local);database=news;uid=sa;pwd=sa;SqlConnection c
4、onn = new SqlConnection(myconnection);第6页,共44页。2、windows模式连接以windows连接模式必须将trusted_connection=truestring myconnection = server=(local);database=news;trusted_connection=true; SqlConnection conn = new SqlConnection(myconnection);第7页,共44页。(2) Command 对数据源执行命令属性说明CommandType CommandType属性可以用来指定CommandTe
5、xt属性中的内容是SQL语句、数据表名称还是存储过程。 CommandType.TableDirect 数据表名称 CommandType.Text SQL语句 CommandType.StoredProcedure 存储过程名称默认为:CommandType.TextCommandText由CommandText属性设置,表示内容是SQL语句、数据表名称或存储过程CommandTimeout指令超时时间,默认为30s第8页,共44页。Command对象方法方法描述ExecuteReader执行CommandText属性所规定的操作,并创建DataReader对象ExecuteNonQuery
6、执行CommandText属性所规定的操作,一般为update、insert、delete及其他没有返回值的SQL命令,返回受影响的行数。ExecuteScalar执行CommandText属性所规定的操作,返回执行结果中的首行首列的值。如结果集多于一行一列,它将忽略其余部分。一般用于执行max、min、Count、sun之类的结果。第9页,共44页。使用方法string myconnection = server=.;database=news;uid=sa;pwd=sa;SqlConnection conn = new SqlConnection(myconnection);SqlComm
7、and cmd = new SqlCommand();cmd.CommandType = CommandType.Text;cmd.CommandText = select 新闻标题,发布日期 from News;cmd.Connection = conn;conn.Open();第10页,共44页。综合实例(一)查询数据 protected void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = n
8、ew SqlConnection(connection); string command=select * from news; SqlCommand cmd = new SqlCommand(command, conn); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); this.GridView1.DataSource = dr; this.GridView1.DataBind(); dr.Close(); conn.Close(); 第11页,共44页。(3) DataReader从数据源中读取只进且只读的数据流.当我们只需要按顺
9、序读取数据而不需要其他操作时,可以使用DataReader对象。DataReader类是抽象类,因此不能直接实例化,而是通过执行Command对象的ExecuteReader方法返回DataReader实例。第12页,共44页。(4) DataBindDataBind方法表示绑定数据第13页,共44页。综合实例(2)增加数据string connection =server=.;database=news;uid=sa;pwd=123456;SqlConnection conn = new SqlConnection(connection);string command = insert in
10、to news(新闻标题,新闻内容,作者,新闻分类)values(ADO.NET基础,ADO.NET基础ADO.NET基础ADO.NET基础ADO.NET基础ADO.NET基础ADO.NET基础,WEIWEI,IT技术) ;SqlCommand cmd = new SqlCommand(command, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); Response.Write(alert(数据插入成功!);第14页,共44页。(5) ExecuteNonQuery该方法执行Command属性中所规定增删改的SQL语句。第15
11、页,共44页。综合实例(3)修改数据protected void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = new SqlConnection(connection); string command = update news set 新闻标题=实例教程 where 新闻标题=基础; SqlCommand cmd = new SqlCommand(command, conn); conn.Open
12、(); cmd.ExecuteNonQuery(); conn.Close(); Response.Write(alert(数据修改成功!); 第16页,共44页。综合实例(4)删除数据 protected void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = new SqlConnection(connection); string command = delete from news where
13、 新闻标题=实例教程; SqlCommand cmd = new SqlCommand(command, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); Response.Write(alert(数据删除成功!); 第17页,共44页。(6) ExecuteScalar方法ExecuteScalar方法返回执行结果中首行首列的值,该方法只能执行Select语句,一般用于取得最大值(Max)、最小值(Min)、平均值(Avg)、记录数(Conut)第18页,共44页。综合实例(4)ExecuteScalar方法protected
14、void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = new SqlConnection(connection); conn.Open(); SqlCommand cmd = new SqlCommand(select count(*) from news, conn); string count=cmd.ExecuteScalar().ToString(); this.Label1.Text =
15、+count+; 第19页,共44页。执行带参数的commandprotected void Button1_Click(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = new SqlConnection(connection); SqlCommand cmd = new SqlCommand(select * from news where 新闻标题 = ttitle, conn); cmd.Parameters.Add
16、(ttitle,SqlDbType.VarChar).Value= this.TextBox1.Text; conn.Open(); SqlDataReader sdr = cmd.ExecuteReader(); this.GridView1.DataSource = sdr; GridView1.DataBind(); sdr.Close(); conn.Close(); 第20页,共44页。(7) DataReader对象当我们需要按顺序读取数据而不需要其他操作时,可以使用DataReader对象。DataReader对象一次读取一条记录,而且这些数据是只读的,并不允许做其他操作,所以使
17、用DataReader不但节省资源而且效率很高。DataReader类是抽象的类,因此不能直接实例化,而是通过执行Command对象的ExecuteReader方法返回DataReader实例。第21页,共44页。DataReader综合实例protected void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; SqlConnection conn = new SqlConnection(connection); string comma
18、nd = select username,password from users; SqlCommand cmd = new SqlCommand(command, conn); conn.Open(); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()/read表示让DataReader对象读取下一条记录,如果读到数据则返回true,若没有读到数据就返回false Response.Write(sdrusername + ); Response.Write(sdrpassword + ); sdr.Close(); conn
19、.Close(); 第22页,共44页。(8) DataSet对象DataSet对象可以视为一个内存数据库,由许多表(DataTable)数据表关系(Relation)、约束(Constraint)、记录(DataRow)以及字段(DataColumn)对象的集合组成的。DataSet对象的结构也与数据库类似,DataSet对象由一个或多个DataTable组成,DataTable相当于数据库中的表;有列DataColumn与行DataRow,分别对应数据库的字段与记录。第23页,共44页。DataSet对象DataSet对象一个重要的特性是离线操作,即从数据库中取回数据,存到DataSet对
20、象中后,程序可以马上断开与数据库的连接,用户可以对内存中DataSet对象中的数据进行增删改;而当要把改动反映到数据库时,只要重新与数据库建立连接,并利用相应命令实现更新第24页,共44页。DataSet数据库Datatable表DataColumn列DataRow行Constraint约束DataRelation数据关系集第25页,共44页。DataSet对象实例protected void Page_Load(object sender, EventArgs e) string connection = server=.;database=news;uid=sa;pwd=123456; S
21、qlConnection conn = new SqlConnection(connection); SqlDataAdapter da = new SqlDataAdapter(select * from users, conn); DataSet ds = new DataSet(); da.Fill(ds, users); this.GridView1.DataSource = ds.Tables0; GridView1.DataBind(); 第26页,共44页。(9) DataAdapter调用DataAdapter的Fill方法时,如果connection没有打开,DataAdap
22、ter会自动调用Connection对象的open方法;执行完毕后会自动将Connection对象关闭。如果在执行Fill方法时,Connection对象已经打开,那么执行完毕后DataAdapter会维持Connection对象打开状态。第27页,共44页。28使用 ODBC .NET Data Provider 使用 OLE DB.NET Data Provider 访问 MySql 1.3 ASP.NET 访问其他数据源第28页,共44页。29ODBC .NET Data Provider 简介 ODBC(Open Database Connection,开放式数据互连)是访问数据库的一
23、个统一的接口标准,它允许开发人员使用 ODBC API(应用程序接口)来访问多种不同的数据源,并执行数据操作。 当使用应用程序时,应用程序首先通过使用 ODBC API 与驱动管理器进行通信。ODBC API 由一组 ODBC 函数调用组成,通过 API 调用 ODBC 函数提交 SQL 请求,然后驱动管理器通过分析 ODBC 函数并判断数据源的类型。驱动管理器会配置正确的驱动器,然后将 ODBC 函数调用传递给驱动器。最后,驱动器处理 ODBC 函数调用,把 SQL 请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序。 第29页,共44页。30使用命
24、名空间 System.Data.Odbc 才能够使用 ODBC .NET Data Provider 来访问 ODBC 数据源。通过 ODBC 能够连接和执行数据操作,其访问方式和 SQL Server .NET Data Provider 相似,都需要先与数据源建立连接并打开连接,然后创建 Command 对象执行相应操作,最后关闭数据连接。ODBC 对象如下:OdbcConnection:建立与 ODBC 数据源的连接。OdbcCommand:执行一个 SQL 语句或存储过程。OdbcDataReader:与 Command 对象一起使用,读取 ODBC 数据源。OdbcDataAdapt
25、er:创建适配器,用来填充 DataSet。OdbcCommandBuilder:用来自动生成插入、更新、删除等操作的 SQL 语句。第30页,共44页。31使用 DSN 的连接字符串进行连接 使用 DSN(Data Source Name,数据源名)连接数据库,必须首选创建 ODBC 数据源,步骤如图:第31页,共44页。32第32页,共44页。33第33页,共44页。34第34页,共44页。35示例代码 当创建完成数据源之后,就可以使用 OdbcConnection 对象连接应用程序和数据库,在使用 OdbcConnection 对象同样需要使用命名控件 System.Data.Odbc,
26、示例代码如下所示 :string str = “DSN=guojing”; /使用 ODBC 数据源 OdbcConnection con = new OdbcConnection(str); con.Open(); string strsql = select * from mytable;OdbcDataAdapter da = new OdbcDataAdapter(strsql,con); DataSet ds = new DataSet(); da.Fill(ds, tablename); 若需要执行插入、更新、删除等操作,可以使用 Command 对象执行相应的操作,示例代码如下所
27、示:OdbcCommand cmd = new OdbcCommand(insert into mytable values (title),con);cmd.ExecuteNonQuery(); 第35页,共44页。36使用接字符串进行连接(ACCESS) 示例代码如下所示:string str = provider=Microsoft.Jet.OLEDB.4.0 ;Data Source= + Server.MapPath(acc.mdb) + ;/配置连接对象OdbcConnection con = new OdbcConnection(str); /打开连接con.Open(); 第3
28、6页,共44页。37使用Windows 身份验证连接(SQL Server) 当使用 Windows 安全认证进行数据连接时,SQL Server 无需用户提供连接的用户名和密码即可连接, 因为 Windows 安全认证是通过 Windows 登录时的账号来登录的。开发 ASP.NET 应用程序时,需要显式的声明这是一个安全的连接,示例代码如下所示。 Driver=SQL Server; Server=(local);Database=mytable;Trusted_Connection=Yes;第37页,共44页。38OLE DB.NET Data Provider 简介 OLE DB(Ob
29、ject Link and Embedding Database,对象连接与嵌套数据库)是访问数据库的另一个统一的接口标准,它建立在 ODBC 基础之上,不仅能够提供传统的数据库访问,并且能够访问关系型数据库和非关系型数据库。OLE DB 其本质就是一个封装数据库访问的一系列 COM 接口,使用 COM 接口不仅能够减少应用程序和数据库之间的通信和交互,也能够极大的提升数据库的性能,让数据库的访问和操作更加便捷。 OLE DB.NET Data Provider 支持 OLE DB Provider 包括:SQLOLEDB:用来访问 SQL Server 数据库。MSDAORA:用来访问 Or
30、acle 数据库。Microsoft.Jet.OLEDB.4.0:用于访问 Access 等使用 Jet 引擎的数据库。第38页,共44页。39使用 OLE DB.NET Data Provider 访问数据库同 ODBC .NET Data Provider 相同,具有 Connection 对象、Command 对象等用于数据库的连接和执行,以及数据存储等,常用对象如下所示:OleDbConnection:建立与 ODBC 数据源的连接。OleDbCommand:执行一个 SQL 语句或存储过程。OleDbDataReader:与 Command 对象一起使用,读取 ODBC 数据源。Ol
31、eDbDataAdapter:创建适配器,用来填充 DataSet。OleDbCommandBuilder:用来自动生成插入、更新、删除等操作的 SQL 语句。 连接后,使用 Command 对象进行数据库操作,并使用 Close 方法关闭数据连接。第39页,共44页。40使用接字符串进行连接(ACCESS) 使用接字符串进行连接(ACCESS),示例代码如下: string str = provider=Microsoft.Jet.OLEDB.4.0 ;Data Source= + Server.MapPath(access.mdb) + ; OleDbConnection con = new OleDbConnection(str); trycon.Open(); /打开连接Label1.Text = 连接成功; /显式提示信息con.Close(); /关闭连接catch(Exception ee) /抛出异常Label1.Text =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学习幼儿园教师违反职业道德行为处理办法心得感想
- 黑龙江省哈三中2025-2026学年度下学期高二学年期末考试 历史
- 物业小区保洁部管理制度及工作流程
- 交通法律咨询服务告知书
- 人教版小学四年级下册《轴对称》教学设计
- 人教版三年级数学上册确定性与不确定性教学设计第一课时
- 合成材料生产工艺变更管控手册
- 地理标志申请与保护服务手册
- 保险代理业务办理与合规手册
- 环境工程大气污染物监测布点与检测操作手册
- 2026年广东省广州市高三考前冲刺训练(一)语文试题含答案
- 2025年上海大学细胞生物学考研真题
- 2026年水发集团社会招聘249人笔试备考试题及答案解析
- 2025年文化产业发展白皮书区域文化特色与创新方案
- 码垛作业安全操作规程
- 2026年审计法相关知识竞赛经典例题附答案详解【考试直接用】
- 会计事务所客户风险评价表样本
- 2025-2030中国茶叶礼品跨境电商运营模式分析报告
- 落实意识形态责任制制度
- 企业双碳实施方案
- 出入量记录护理实践指南(2025年版)
评论
0/150
提交评论