我对使用感到困惑
什么时候使用这些方法?
and*_*ndy 46
ExecuteScalar:单值
 Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT SUM(COLUMNNAME) FROM TABLE")); 
 Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT AVG(COLUMNNAME) FROM TABLE")); 
ExecuteReader:以正向模式读取行
 IdataReader dr = ExecuteReader("SELECT * FROM TABLE"); 
 while(dr.Read())
 {
     //You will get rows values like this dr["ColumnName"]
 } 
ExecuteNonQuery:用于插入/删除/更新行到表中
ExecuteNonQuery("DELETE FROM TABLE");
ExecuteNonQuery("UPDATE TABLE SET COLUMNNAME = 'A'");
Ama*_*ian 10
的ExecuteNonQuery
ExecuteNonQuery方法将返回使用INSERT,DELETE或UPDATE操作影响的行数.此ExecuteNonQuery方法仅用于insert,update和delete,Create和SET语句.(阅读有关ExecuteNonQuery的更多信息)
SqlCommand.ExecuteNonQuery MSDN文档
的ExecuteReader
在执行SQL查询或使用命令对象的存储过程时,将使用Execute Reader返回行集.这个是仅向前检索记录,它用于从头到尾读取表值.(阅读有关ExecuteReader的更多信息)
SqlCommand.ExecuteReader MSDN文档
执行标量
执行Scalar将在使用命令对象执行SQL查询或存储过程时返回单行单列值,即单值.从数据库中检索单个值非常快.(阅读有关Execute Scalar的更多信息)
SqlCommand.ExecuteScalar MSDN文档
使用ExecuteScalar时,查询返回一个值.如果它返回更多结果,则最终结果是第一行的第一列.一个例子可能是SELECT Count(*) from MyTable
使用ExecuteReader用于获取结果与多个行/列(如设置SELECT col1, col2 from MyTable.
使用ExecuteNonQuery的,不会从数据库中检索结果,但使现有的数据库更新用(例如,SQL语句UPDATE, INSERT,等).