sqlCommand类的三种执行方法的区别

 
    ExecuteNonQuery用于执行不返回任何记录的SQL语句或存储过程。在数据库执行如更新、插入、删除操作时,应使用这个方法。ExecuteNonQuery返回一个整数值,用来说明受查询语句影响的行数。
connection.Open();
command.ExecuteNonQuery();
command.Close();
    ExecuteScalar与ExecuteNonQuery一样,其返回的也是单值,但该返回值是从数据库中读出来的,而不是受影响的行数。它通常用于选择一个值的SQL语句。如果SELECT返回多行或多列,则使用该方法仅返回第一行第一列的数据。
   ExecuteReader被用于返回多条记录的SELECT语句(包含任意个字段)。ExecuteReader将返回一个包含查询结果的 SqlDataReader对象。一个SqlDataReader对象是以顺序向前且只读的形式逐个读取并返回结果的。SqlDataReader是数据库中读取数据最快的对象,但必须打开连接。通过SqlDataReader取回所有的记录,并把它们存入DataTable对象中(它可以存储离线数据而不需要一个打开的连接),这样就可以马上关闭数据库连接了。DataTable类可以存放本地的结果集而不需要一个打开的SQL Server连接,和其它的ADO.NET对象要磁,它也不是特定于某种数据提供程序的。
下面是一个简单的示例:
conn.Open();
SqlDataReader reader 
= comm.ExecuteReader();
DataTable table 
= new DataTable();
table.Load(reader);
reader.Close();
conn.Close();
posted on 2008-08-09 16:37  子非魚  阅读(894)  评论(0编辑  收藏  举报