C#执行命令对象的总结(转自倚天万里须长剑)
2013-08-23 14:27
176 查看
ExecuteNonQuery,ExecuteScalar,ExecuteReader,ExecuteXmlReader,ExecuteOracleNonQuery,ExecuteOracleScalar
2011-10-27 11:57:56| 分类:数据库 | 标签:
|字号大中小 订阅
ExecuteNonQuery()
执行命令对象的SQL语句,返回一个int变量,如果sql语句是对数据库的记录进行操作(insert,
delete, update),那么将返回操作所影响的记录条数。对于其他类型的语句,返回值为-1.如果发生回滚,返回值也为-1.
ExecuteScalar()
执行命令对象的SQL语句,如果是select,则仅返回查询结果集中的第一行第一列,而忽略其他的行和列。该方法返回的结果为object类型,在使用之前必须强制转换为所需类型。如果sql语句不是select,则返回未实例化对象,因为对象未实例化,所以返回结果不能ToString(),不能Equals(null),即返回结果没有任何作用。当只需返回一个单独的数据元时,则可以使用此方法来提高代码的性能,常用于执行聚合函数。
ExecuteReader()
如果是select,返回查询结果的集合,类型是DataReader(OleDbDataReader,
SqlDataReader, OracleDataReader等)。它提供了“游水”式的执行方式,即从结果中读取一行之后,移动到另一行,前一行无法再用。有一点需要注意的是,要等到手动调用Read()方法之后,DataReader对象才会移动到结果集的第一行,同时此方法也返回一个bool值,true表示下一行可用,false表示到达结果集末尾。
如果不是select语句,则返回一个没有任何数据的DataReader类型的集合(EOF)。
使用DataReader可以提高执行效率,有两种方式可以提高代码的性能:一是基于序号的查找,一是使用适当的Get方法查找。因为查询出来的结果一般都不会改变,除非再次改动查询语句,因此可以通过定位列的位置来查找记录。用这种方法有一个问题,有可能知道一列的名称而不知其所在的位置,可以通过DataReader的GetOrdinal()方法,次方法接收一个列名并返回此列名所在的列号。E.g.
int id
= reader.GetOrdinal(“FieldName”);
while (reader.Read()) {
Response.Write(reader[id]); //也可写成reader[“FieldName”]
}
reader.Close();
while (reader.Read()) {
Response.Write(reader.GetInt32(0).ToString()
+ “ ” + reader.GetString(1).ToString());
}
DataReader的GetInt32()和
GetString()通过接收一个列号来返回一个列的值。这两种方法是最常用的,还有很多其他方法。
ExecuteXmlReader()
用于XML操作,返回一个XML对象。E.g
XmlReader xr = cmd.ExecuteXmlReader();
Response.Write(xr.AttributeCount); // 获取当前节点上的属性个数
xr.Close();
ExecuteOracleNonQuery()
执行查询,返回受影响的行数。与ExecuteNonQuery()的区别是,该方法使用OracleString参数来返回update,insert或delete查询所修改的最后一行的rowid。
ExecuteOracleScalar()
与ExecuteScalar()方法功能相同。但是,ExecuteScalar()是将结果集第一行第一列的值作为.net框架数据类型返回,而ExecuteOracleScalar()是将结果集第一行第一列作为OracleType数据类型返回。
相关文章推荐
- 在C#中通过命令对象执行SQL
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
- C#总结————无法将类型为“DAL.DALLookForRecharge”的对象强制转换为类型“IDAL.IDA
- C#面向对象概念总结
- paip.执行shell cmd 命令uapi java php python总结
- javaScript函数中执行C#代码中的函数方法总结
- 总结C#中得到程序当前工作目录和执行目录的一些方法
- C#执行异步操作的几种方式比较和总结
- C#通过调用系统命令执行R脚本
- ssh执行shell命令 C# 和java
- [导入]C#面向对象设计模式纵横谈(25):设计模式总结.zip(12.84 MB)
- CLR学习总结之C#程序的编译与执行
- Linux命令总结_命令执行顺序
- 项目总结(三)----------Python实现SSH远程登陆,并执行命令!
- 黑马程序员_学习日记2_有关C#基础知识总结归纳之对象和类型
- c#关闭系统进程以及如何调用cmd并执行命令
- 设计模式(14)----- 命令设计模式(升级----一个命令对象执行多条命令)
- PHP文件包含与命令执行方式总结
- 命令对象SqlCommand(二)执行命令,返回单个记录
- 【转】C# 后台开启 cmd执行命令