ADO.NET中的五个主要对象
Connection 物件 Connection 对象主要是开启程序和数据库之间的连结 没有利用连结对象将数据库打开 是无法从数据库中取得数据的 这个物件在ADO NET 的最底层 我们可以自己产生这个对象 或是由其它的对象自动产生
Command 物件 Command 对象主要可以用来对数据库发出一些指令 例如可以对数据库下达查询 新增 修改 删除数据等指令 以及呼叫存在数据库中的预存程序等 这个对象是架构在Connection 对象上 也就是Command 对象是透过连结到数据源
DataAdapter 物件 DataSetCommand 对象主要是在数据源以及DataSet 之间执行数据传输的工作 它可以透过Command 对象下达命令后 并将取得的数据放入DataSet 对象中 这个对象是架构在Command对象上 并提供了许多配合DataSet 使用的功能 在Beta 版中DataSetCommand 物件会更名为DataAdapter
DataSet 物件 DataSet 这个对象可以视为一个暂存区(Cache) 可以把从数据库中所查询到的数据保留起来 甚至可以将整个数据库显示出来 DataSet 的能力不只是可以储存多个Table 而已 还可以透过DataSetCommand 对象取得一些例如主键等的数据表结构 并可以记录数据表间的关联 DataSet 对象可以说是ADO NET 中重量级的对象 这个对象架构在DataSetCommand 对象上 本身不具备和数据源沟通的能力 也就是说我们是将DataSetCommand 对象当做DataSet 对象以及数据源间传输数据的桥梁
DataReader 物件 当我们只需要循序的读取数据而不需要其它操作时 可以使用DataReader 对象 DataReader对象只是一次一笔向下循序的读取数据源中的数据 而且这些数据是只读的 并不允许作其它的操作 因为DataReader 在读取数据的时候限制了每次只读取一笔 而且只能只读 所以使用起来不但节省资源而且效率很好 使用DataReader 对象除了效率较好之外 因为不用把数据全部传回 故可以降低网络的负载
ADO NET 使用Connection 对象来连接数据库 使用Command 或DataAdapter对象来执行SQL语句 并将执行的结果返回给DataReader 或 DataAdapter 然后再使用取得的DataReader 或DataAdapter 对象操作数据结果 Connection 对象 建立Connection 对象的代码 OLEDB: OleDbConnection MyConnection=new OleDbConnection(); SQL: SqlConnection MyConnection=new SqlConnection(); ◆他们的ConnectionString属性 获取或设置连接语句 MyConnection ConnectionString= server=(local);database=pubs;uid=sa;pwd= ; ◆DataBase 属性 获取当前打开数据库 ◆DataSource属性 获取打开数据库的连接实例 ◆Open 方法 打开连接 ◆Close 方法 关闭连接 Command与DataReader 对象 Command 对象中包含了提交数据库系统的访问信息 OleDbCommand 与SqlCommand 对象 它们的基本对象和操作方法是相同的 在此介绍OleDbCommand的用法 SqlCommand的用法类推即可 如 OleDbCommand myComm = new OleDbCommand(strQuery myConnection); 第一个参数是sql语句或存储过程名 第二个参数是前面的Connection 对象的实例 Command 对象的只要的属性和方法有 ◆Connection 属性 设置或获取 Command对象使用的Connection 对象实例 ◆CommandText 属性 设置或获取需要执行的sql语句或存储过程名 ◆CommandType 属性 设置或获取执行语句的类型 它有 个属性值:StoredProceduce(存储过程) TableDirect Text(标准的SQL语句) 默认是Text ◆Parameters 属性 取得参数值集合 ◆ExecuteReader 方法 执行CommandText指定的SQL语句或存储过程名 返回值类型为DataReader ◆ExecuteNonQuery 方法 与ExecuteReader 功能相同 只是返回值为执行sql语句或存储过程受影响的记录行数 DataReader 的主要属性和方法有 ◆FieldCount 属性 显示当前数据记录的字段总和 ◆IsClosed 属性 判断DataReader 对象是否已经关闭 ◆Close 方法 关闭DataReader 对象 ◆GetString方法 以String类型返回指定列中的值 ◆Getvalue 方法 以自身的类型返回指定列中的值 ◆Getvalues 方法 返回当前记录所有字段的集合 ◆Read 方法 将 光标 指向DataReader对象的下一记录 Sql连接实例 <%@ Import Namespace= System Data %> <%@ Import Namespace= System Data SqlClient %> <script language= C# runat= server > void Page_Load(Object sender EventArgs e) { SqlConnection Conn=new SqlConnection(); Conn ConnectionString= server=(local);database=pubs;uid=sa;pwd= ; Conn Open(); SqlCommand Comm=new SqlCommand( select * from Authors Conn); SqlDataReader dr=Comm ExecuteReader(); dg DataSource=dr; dg DataBind(); Conn Close(); } </script> <asp:DataGrid id= dg runat= server /> Aeccess 数据库连接实例 (OleDbCommand 和 OleDbDataReader 使用实例) <%@ Page Language= C# %> <%@ Import Namespace= System Data %> <%@ Import Namespace= System Data OleDb %> <script Language= C# Runat= Server > OleDbDataReader dr; public void Page_Load(Object src EventArgs e) { string myConnstring= provider=Microsoft Jet OLEDB ; Data Source= +Server MapPath( )+ \\DataBase\\db mdb; ; string strSel= Select * from BookMark ; OleDbConnection myConn= new OleDbConnection (myConnstring); OleDbCommand myComm=new OleDbCommand(strSel myConn); myComm Connection Open(); dr=myComm ExecuteReader(); dg DataSource=dr; dg DataBind(); myConn Close(); } </script> <> <body> <form Runat= Server > <asp:DataGrid id= dg runat= server /> </form> </body> </> ++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++
DataSet 与DataAdapter DataReader 对象只能实现对数据的读取 不能完成其他的操作
lishixinzhi/Article/program/net/201311/12461