ADO.NET的一点总结

ADO.NET提供了两个组件,用来访问和处理数据:.NET Framework数据提供程序和DataSet(数据集)。这里叙述ADO.NETSQL 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(表)的集合
另外,可以使用SqlDataAdapterUpdate方法将此数据集中的更改同步到数据库
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约束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值