ADONET数据库编程.docx
《ADONET数据库编程.docx》由会员分享,可在线阅读,更多相关《ADONET数据库编程.docx(19页珍藏版)》请在三一办公上搜索。
1、ADONET数据库编程ADO.NET数据库编程 1、ADO.NET的相关概念。 Microsoft的新一代技术,是ADO组件的后继者。 主要目的是在.NET Framework平台存取数据。 提供一致的对象模型,可以存取和编辑各种数据源的数据,即对这些数据源,提供了一致的数据处理方式。 ADO.NET保存和传递数据是使用XML格式。可实现与其他平台应用程序以XML文件进行数据交换。 2、数据访问类库的名称空间 针对不同的数据源,使用不同名称空间的数据访问类库,即数据提供程序。常用的数据源包括四种: Microsoft SQL Server数据源:使用System.Data.SqlClient名
2、称空间。 OLEDB数据源:使用System.Data.OleDb名称空间。 ODBC数据源:使用System.Data.Odbc名称空间。 Oracle数据源:使用System.Data.OracleClient名称空间 要使用ADO.NET 来访问数据库,需要将相应的名称空间导入到应用程序中,如下: System.Data是通用的名称空间,其中包含组成ADONET核心体系结构的所有类。 System.Data.Oledb 名称空间供ADO.NET 管理提供程序访问支持OleDb的数据源时使用。 System.Data.SQLClient 名称空间供 SQL Server管理提供程序使用。该
3、名称空间是专为 Microsoft SQL Server 而设计的,对于以前版本的 SQL Server,可以提高其性能。 如:using System.Data; using System.Data. SqlClient; System.Data.OleDb和System.Data.SqlClient名称空间的类名称相同,只是字头不同。 之所以分成两组类,主要目的是提供一组最佳化SQL Server数据库存取的类。 OleDb字头的类是使用OLEDB提供者数据源的数据库。例如Access和Oracle等数据库。 Sql字头的类只能使用在SQL Server7.0以上版本,直接和服务器端的SQ
4、L Server通信,因为不通过OLE DB和ODBC,所以可以明显提升整体的执行效率。 3、ADO.NET的组成 ADO.NET用于访问和处理数据的类库包含以下两个组件: .NET Framework 数据提供程序 DataSet ADO.NET 数据提供程序的四个核心对象: Connection建立到指定资源的连接 Command对一个数据源执行命令。公开Parameters,在 Connection 的 Transaction 范围内执行。 DataReader从一个数据源读取的只读数据流。 DataAdapter填充一个 DataSet,解析数据源的更新。 ADO.NET是使用Conn
5、ection对象建立与数据源的数据链路,然后使用Command对象执行命令来获取数据源的数据,对数据库来说就是使用SQL命令。 在获取数据源的数据后,就可以填入DataReader或DataSet对象,最后使用数据绑定在Web控件显示记录数据。 Connection对象 可以建立与数据源间的连接;对数据库来说,还负责初始化数据库。 有两种:OleDbConnection对象和SqlConnection对象。 Web服务器和数据库系统本属于两套不同的应用程序,通过ODBC或OLE DB可以打开数据源的数据库,Connection对象进一步将ASP.NET程序和数据库连接起来。 Command对象
6、 可以对数据源执行命令,对数据库来说,就是执行SQL命令。 ASP.NET程序可以使用Command对象发送SQL命令来插入、删除、更新和查询数据表的记录。 需要先使用Connection对象建立数据库连接后,才能使用Command对象执行SQL命令。 两种:OleDbCommand对象和SqlCommand对象。 DataReader对象 可以从数据源使用Command对象执行命令,获取“只读”和“只能向前”的流数据。 每次只能从数据源读取一行数据保存到内存。 获取的数据为只读,不允许插入、删除和更新记录,其目的是显示查询结果。 两种:OleDbDataReader对象和 SqlDataRe
7、ader对象。 DataAdapter 和 DataSet 类满足了支持数据库访问的断开连接模型这一需求。 DataSet 是 ADO.NET 断开连接体系结构中主要的数据存储工具。填充 DataSet 时,必须创建一个 DataAdapter 来填充 DataSet。 DataAdapter 连接数据库,执行查询并填充 DataSet。当 DataAdapter 调用 Fill 或 Update 方法时,在后台完成所有的数据传输。每个 .NET Framework 的数据提供程序都有一个 DataAdapter 对象。 DataAdapter 能控制与现有数据源的交互。DataAdapter
8、 也能将对 DataSet 的变更传输回数据源中。 一个 DataSet 代表一组完整的数据,包括表格、约束条件和表关系。DataSet 能够存储代码创建的本地数据,也能存储来自多个数据源的数据,并断开到数据库的连接。 DataSet和DataTable对象 DataSet对象是由DataTable对象组成的集合对象,可代表保存在内存的数据库。 每一个DataTable保存一个数据表的记录数据,并且可以设定数据表间的关联性。 属于System.Data名称空间,用DataAdapter类的方法Fill将数据表的数据填入DataSet对象。 可以在DataTable对象中插入和删除行,即处理数据
9、表的记录,最后使用DataAdapter类将DAtaTable对象中的数据更新到数据库。 4、使用ADO.NET SQL命令执行数据库操作 分为两种方式: 使用ADO.NET的Command对象配合SQL语法; 使用ADO.NET的DataSet对象; 可用Command对象执行SQL命令;用Connection对象来建立数据库连接。 步骤: 导入所需的名称空间; 建立和打开数据库连接; 建立Command对象; 执行SQL命令处理数据库; 关闭数据库连接; 实例演示。 建立Connection对象的语法: SqlConnection objcon; objcon=new SqlConnect
10、ion(strDbCon); 上述代码建立了名为objCon的SqlConnection对象。 strDbCon变量是数据源字符串,如: strDbCon=server=(local);database=ybsd;Trusted_Connection=Yes; 上述字符串中以“;”分隔 建立好Connection对象后,就可以使用Open方法打开数据库连接: objCon.Open Connection对象的相关方法: Open和Close Connection对象的相关属性: ConnectionString;ConnectionTimeout Database;DataSource; Pr
11、ovider;State 上述属性在连接打开后都成为只读属性; 在连接打开前,可以设定这些属性,如: objCon.ConnectionTimeout=30 上述设定与在连接字符串中指定功能等同; 在打开数据库连接后,就可以建立Command对象来指定欲执行的SQL命令字符串: SqlCommand objcom; objcom = new SqlCommand(strsql, objCon); 上述代码使用SqlCommand类建立Command对象;第一个参数是SQL命令字符串;第二个参数是建立的Connection对象: 实例演示:使用sql语句SELECT CategoryID, Ca
12、tegoryName FROM Categories,创建查询表Categories的命令的代码如下: SqlCommand cmd; cmd=new SqlCommand(SELECT CategoryID, CategoryName FROM dbo.Categories,con) Command对象的相关属性: Parameters:用来访问输入及输出参数和返回值。 SqlCommand支持命名参数。添加到Parameters集合的参数的名称必须与SQL语句或存储过程中的参数标记的名称相匹配。 OleCommand不支持命名参数,用问号占位符标记参数,则向Parameters集合中添加参
13、数的顺序必须与定义的参数顺序相匹配。 如: SqlParameter param; objcmd = new SqlCommand(select username,password from userinfo where username like name , objconn); param = objcmd.Parameters.Add(name, SqlDbType.NVarChar, 15); param.Value = tbname.Text; SqlDataReader objdr = objcmd.ExecuteReader; Command对象的相关属性: CommandTyp
14、e:命令类型, 可选CommandType.StoredProcedure、 CommandType.Text、 CommandType.TableDirect 如:Sale是存储过程 cmd =new SqlCommand(“sale”,con) cmd.CommandType=CommandType.StoredProcedure 在打开数据库连接,建立Command对象后,就可以用Command对象的ExecuteNonQuery方法来执行SQL命令,如: count=objCmd.ExecuteNonQuery Count可以获取响应的记录数。此方法不会回发记录数据。 Command对
15、象公开了几个可用于执行所需操作的Execute方法: ExecuteReader:当以数据流的形式返回结果时,使用ExecuteReader可返回DataReader对象。 ExecuteScalar:使用ExecuteScalar可返回单个值。 ExecuteNonQuery:使用ExecuteNonQuery可执行不返回行的命令。 使用DataReader对象的Read方法可从查询结果中获取行。 例如,循环显示SqlDataReaderdtr的数据的代码如下: While(dtr.Read) lblMessage+=; lblMessage+=dtrID; lblMessage+=, ;
16、lblMessage+=dtr姓名; 完成数据库操作后,使用Connection对象的Close方法关闭数据库连接: objCon.Close; 实例演示。 小结:使用数据提供程序访问数据库操作的典型步骤如下: 建立数据库连接; 创建SQL命令; 执行SQL命令; 处理SQL命令结果。 实例演示用SQL命令实现数据的增、删、改功能。 课堂练习:按要求编写程序。 5、DataSet对象的数据库操作 DataSet对象的数据库操作需要将数据库先保存在内存的DataTable对象,然后在内存的数据表插入、删除和更新记录,最后使用DataAdpater对象更新数据表的记录数据。 使用DataAdapt
17、er和DataSet访问数据库的典型步骤如下: 建立数据库连接; 建立DataAdapter对象; 如:SqlDataAdapter objDataAdapter=new SqlDataAdapter(strsql,objCon); 建立DataSet对象填入记录数据; 如:objDataAdapter.Fill(objDataSet,”Users”); 在DataTable中执行数据库操作; 更新数据表的记录数据。 如:count=objDataAdapter.Update(objDataSet,”Users”) 关闭数据库连接 DataSet对象使用DataAdapter对象来获取记录数据
18、,它是DataSet和Connection对象数据源之间的桥梁,可以获取DataSet的记录数据和更新数据源的记录数据。 如: SqlDataAdapter objadapter; sqlstr=“select * from userinfo”; objadapter=new SqlDataAdapter(sqlstr,objcon); SqlCommandBuilder objcmdbuilder =new SqlCommandBuilder(objadapter) 上述代码建立的对象配合Dataset,可自动生成所需的SQL命令 DataAdapter的Fill方法使用DataAdapte
19、r的SelectCommand的结果集来填充DataSet。 例如: SqlConnection con; con=new SqlConnection(Persist Security Info=False; Integrated Security=SSPI; database= Northwind; server=.SQLEXPRESS); con.Open; SqlDataAdapter adapter; adapter = new SqlDataAdapter(SELECT CustomerID, CompanyName FROM Customers, con); DataSet cus
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADONET 数据库 编程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3152148.html