ExecuteNonQuery,ExecuteScalar,ExecuteReader,ExecuteXmlReader,ExecuteOracleNonQuery,ExecuteOracleScal

原创 2013年12月17日 10:32:14

ExecuteScalar()

执行命令对象的SQL语句,如果是select,则仅返回查询结果集中的第一行第一列,而忽略其他的行和列。该方法返回的结果为object类型,在使用之前必须强制转换为所需类型。如果sql语句不是select,则返回未实例化对象,因为对象未实例化,所以返回结果不能ToString(),不能Equals(null),即返回结果没有任何作用。当只需返回一个单独的数据元时,则可以使用此方法来提高代码的性能,常用于执行聚合函数。

ExecuteOracleScalar()

与ExecuteScalar()方法功能相同。但是,ExecuteScalar()是将结果集第一行第一列的值作为.net框架数据类型返回,而ExecuteOracleScalar()是将结果集第一行第一列作为OracleType数据类型返回。

ExecuteXmlReader()

用于XML操作,返回一个XML对象。E.g

XmlReader xr = cmd.ExecuteXmlReader();
Response.Write(xr.AttributeCount); // 获取当前节点上的属性个数
xr.Close();

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()通过接收一个列号来返回一个列的值。这两种方法是最常用的,还有很多其他方法。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ExecuteNonQuery()

执行命令对象的SQL语句,返回一个int变量,如果sql语句是对数据库的记录进行操作(insert, delete, update),那么将返回操作所影响的记录条数。对于其他类型的语句,返回值为-1.如果发生回滚,返回值也为-1.

ExecuteOracleNonQuery()

执行查询,返回受影响的行数。与ExecuteNonQuery()的区别是,该方法使用OracleString参数来返回update,insert或delete查询所修改的最后一行的rowid

浅谈ExecuteNonQuery方法和ExecuteScalar方法和ExecuteReader方法的使用

1)ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),那么方法将返回操作所影响的记录条数。 下面...
  • gengyudan
  • gengyudan
  • 2013年09月22日 10:23
  • 6861

浅谈asp.net中的ExecuteNonQuery(),ExecuteReader()和ExecuteScalar()

浅谈asp.net中的ExecuteNonQuery(),ExecuteReader()和ExecuteScalar()       ExecuteNonQuery():这个东东可以让我们在更新数据库...
  • lsd123
  • lsd123
  • 2008年09月26日 16:59
  • 2615

关于ExecuteNonQuery(),ExecuteReader();ExecuteScalar();之间的区别

 1.ExecuteNonQuery(); 它的返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。 2.ExecuteReader(); 它的返回类型为S...
  • yb625887489
  • yb625887489
  • 2014年07月29日 14:32
  • 577

ExecuteNonQuery(),ExecuteReader(),ExecuteScalar(),ExecuteXmlReader()

1.ExecuteReader()    返回一个SqlDataReader对象或OleDbDataReader对象,这个看你的程序的需要去做。可以通过这个对象来检查查询结果,它提供了“游水”式的执行...
  • skydxd
  • skydxd
  • 2010年12月18日 23:21
  • 401

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()区别

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()区别 1、ExecuteReader();返回一个SqlData...
  • Specialaspnet
  • Specialaspnet
  • 2009年12月06日 14:24
  • 507

C#中ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()方法的作用

ExecuteReader() 一般是连接数据库 操作查询的 返回的是个adapter 、ExecuteNonQuery() 执行数据库 非查询类操作 、ExecuteScalar() 类型...
  • ccx_john
  • ccx_john
  • 2013年12月25日 15:10
  • 2507

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别 主要有这么几种,cmd.ExecuteReade...
  • u014598642
  • u014598642
  • 2014年04月09日 23:10
  • 265

ExecuteNonQuery / ExecuteScalar / ExecuteReader / ExecuteXmlReader的区别

ExecuteNonQuery(增、删、改操作)       执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 ...
  • chybaby
  • chybaby
  • 2008年10月03日 09:49
  • 448

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlRead...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年07月10日 08:59
  • 698

ExecuteNonQuery ExecuteScalar ExecuteReader ExecuteXmlReader的区别

ExecuteNonQuery(增、删、改操作)       执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 ...
  • cngkqy
  • cngkqy
  • 2007年09月27日 16:33
  • 916
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ExecuteNonQuery,ExecuteScalar,ExecuteReader,ExecuteXmlReader,ExecuteOracleNonQuery,ExecuteOracleScal
举报原因:
原因补充:

(最多只允许输入30个字)