command的方法
ExecuteNonQuery()返回受影响行数的问题
在使用ExecuteNonQuery()方法时,如果是执行update,insert或者delete操作,该方法返回操作影响的行数,如果执行失败,返回-1;而如果是执行select或者其它像create之类的操作,则无论成功还是失败都返回-1.所以我的那段代码这么写并不能判断SQLHelper类的操作是否正确执行了,要改成下面这样就可以了.
SqlCommand cmd = new SqlCommand(conn,“update Table set id=1 where id=2”);
int sqlResult = cmd.ExecuteNonQuery();
调试一下,返回结果为1.
最后得出的结论是:当执行的操作是update,insert或者delete时,可以通过判断ExecuteNonQuery返回值是否大于0来得到该操作是否被执行.当执行的操作是select或者其它操作时,可以使用try-catch语句来判断.
C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项…
Command 对象公开了几个可用于执行所需操作的 Execute 方法。当以数据流的形式返回结果时,使用 ExecuteReader 可返回 DataReader 对象。使用 ExecuteScalar 可返回单个值。使用 ExecuteNonQuery 可执行不返回行的命令。
当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数。