ADO.NET提供了两个组件,用来访问和处理数据:.NET?Framework数据提供程序和DataSet(数据集)。这里叙述ADO.NET对SQL?Server数据库的访问。
l?.NET?Framework数据提供程序 SqlConnection SqlConnection对象用来建立与SQL?Server数据库的连接。常用的属性和方法有: ConnectionString:获取和设置应用程序连接数据库的连接字符串。 一般数据库连接字符串的格式为: Data?Source=服务器名;Initial?Catalog=数据库名;User?ID?=?用户名;Pwd=密码 或 Data?Source=服务器名;Initial?Catalog=数据库名;Integrated?Security=True; 还可以利用SqlConnectionBuilder对象来生成连接字符串 Open():使用指定的设置打开数据库连接 Close():关闭与数据库的连接 CreateCommand():创建并返回一个与此连接关联的数据库命令对象。 为了减少资源的损耗,一般用完连接后应该立刻将其关闭。常用的关闭方法有两种: 1.try-catch-finally try { //打开连接,并做各种数据操作。 } catch(Exception) { //异常处理 } finally { //关闭连接 } 2.using?语句 using(SqlConnection?conn?=?new?SqlConnection(连接字符串)) { //打开连接,做各种数据的操作 } using?语句会确保即使发生了异常,也会将conn释放 SqlCommand SqlCommand对象表示要对?SQL?Server?数据库执行的一个?Transact-SQL?语句或存储过程。常用的属性和方法有: Connection:获取和设置Command对象使用的数据库连接。 CommandText:要执行的SQL语句。 //一般这两个属性可以由SqlCommand的构造方法设置。 ExecuteScalar:执行查询,并返回查询所得结果集的第1行第1列的数据 ExecuteNonQuery:执行,SQL语句并返回受影响的行数。 该方法一般应用在不需要返回结果的insert?update?delete等操作 ExecuteReader:根据查询的结果返回一个DataReader对象。 一般使用此方法时,可以添加一个参数CommandBehavior.CloseConnection,表示关闭DataReader对象时自动关闭与之关联的SqlConnection SqlDataReader SqlDataReader对象提供一种从?SQL?Server?数据库读取行的只进流的方式。 当使用SqlCommand对象的ExecuteReader方法得到此类的实例后,就可以利用它来完成对结果集的读取。 在读取数据前,先调用Read()方法将SqlDataReader前进到下一条记录。该方法返回一个bool值表示下一条记录是否有值。 HasRows:表示查询是否有结果 FieldCount:表示当前行中的列数 Item[string]:此索引器返回当前记录指定列的值(Object类型) Item[int]:此索引返回当前记录指定索引处的值(Object,索引从0开始) 替代上面两种方法的更好的方法是使用 GetXXX(int)一系列的方法,XXX是一种数据类型的名称,参数是列的索引(从0开始), 此方法放回XXX数据类型的值,而无需像使用上面两个索引器一样对Object类型进行强转 如果结果集中有很多条记录,一般会如下使用: //得到SqlDataReader对象reader while(reader.Read()) { …… XXX?x?=?reader.GetXXX(n); //对得到的数据x进行处理 …… } Close():与SqlConnection类似地,使用此方法关闭资源。 SqlDataAdapter SqlDataAdapter对象利用提供的连接和查询语句填充一个DataTable,比如下面的代码: SqlDataReaderAdapter?da?=?new?SqlDataAdapter(查询语句,连接对象); da.Fill(DataTable对象); 将查询的结果自动保存在DataTable对象中。
l?DataSet数据集 DataSet可以简单地理解为内存中的数据库,一般使用的属性有: Tables 获取此数据集中的DataTable(表)的集合 另外,可以使用SqlDataAdapter的Update方法将此数据集中的更改同步到数据库 DataTable Rows 获取此数据表的DataRow(行)的集合 Columns 获取此数据表的DataRow(列)的集合 Constraints 获取此数据表的Constraint(约束)的集合 DataRow 表示一条记录,一个行有各种不同的Version,当对行做了各种增删改等操作后,不同的Version会对应不同的值。 比如:Current:表示列中目前存在的值;Default:默认值;Original:表示最初从数据库取出来的值 DataRow有各种不同的索引器,一般提供指定的列信息和Version信息可以取出此行中对应列的值。 Item[String(,DataRowVersion)]:根据列名取出对应的值。 Item[int?(,DataRowVersion)]:根据列的索引取出对应的值。 Item[DataColumn(,DataRowVersion)]根据DataColumn(列)取出对应的值。 DataColumn 用来描述一个列,以此规定DataTable?的架构,各种描述性的属性: AllowDBNull:对应数据库中not?null约束 AutoIncrement:是否设置标识列 AutoIncrementSeed:标识列的种子 AutoIncrementStep:标识列增量 DataType:定义此列的System.Type值,描述对应的数据类型 DefaultValue:对应数据库中的default约束
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|