ADO.NET学习笔记(一)(2)

本文介绍了 ADO.NET 中的数据库事务处理方法,包括 SavePoint 的使用及部分事务回滚操作。此外,还详细讲解了批处理查询的应用场景及 DataReader 对象的高效使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ADO.NET学习笔记(一)(2)



仅仅做数据库事务处理的话就直接在服务端写事务语句(在SQLSERVER2000中写事务)
在事务中可以创建SavePoint来实现部分事务回滚
cmd.Transaction.save("NewCustomer")
cmd.Transaction.Rollback("NewCustomer")

(5)批处理查询如果有多条SQL语句并且可以一起执行的话,就可以进行批处理查询。在DataReader中支持批处理查询获得的数据集。
cmd.CommandText="SELECT*FROMCustomer;SELECT*FROMInovince;"
DimrdrAsSqlDataReader
rdr=cmd.ExecuteReader()
rdr中即包含两个SQL语句执行的结果

3、DataReader对象
DataReader对象只能对查询获得的数据集进行自上而下的访问,但效率很高。如果仅仅是访问数据的话,可以使用DataReader。但DataReader要求一直连接,所以将结果的一小部分先放在内存中,读完后再从数据库中读取一部分,相当于一个缓存机制。这对于查询结果百万级的情况来说,带来的好处是显而易见的。
模板代码:
DoWhilerdr.Read()
Console.WriteLine(rdr(0)) '也可输出rdr("CustomerID")
Loop
如果要进行类型限制的话可以输出(String)rdr(0)或rdr.GetString(0)

从DataReader里读出数据的时候要注意属性是否为空,如果属性可以为空,则读出数据时应进行判断
IfNotrdr.IsDBNull(0)
Console.writeLine(...)

用DataReader读取记录时,数据库默认上锁,可以通过更改DataReader的默认属性改变。

如果DataReader里面的数据是批处理语句执行得到的话,可以通过NextResult访问
模板代码:
Do
DoWhilerdr.Read()
Console.WriteLine(rdr(0))
Loop
LoopWhilerdr.NextResult()

处理元数据(显示每个属性的情况)
DimschemaAsDataTable
schema=rdr.GetSchemaTable() '得到元数据表,表里的每列对应每个属性的特性集合
对于每一列属性对应的row,通过row("DataType")获得这列属性的数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值