sqlCommand类的三种执行方法的区别
connection.Open();
command.ExecuteNonQuery();
command.Close();
ExecuteScalar与ExecuteNonQuery一样,其返回的也是单值,但该返回值是从数据库中读出来的,而不是受影响的行数。它通常用于选择一个值的SQL语句。如果SELECT返回多行或多列,则使用该方法仅返回第一行第一列的数据。command.ExecuteNonQuery();
command.Close();
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();
SqlDataReader reader = comm.ExecuteReader();
DataTable table = new DataTable();
table.Load(reader);
reader.Close();
conn.Close();