from:http://www.cnblogs.com/David-weihw/archive/2006/11/17/563701.html
今天我的同事,被ExecuteNonQuery 方法给困住了。
同事只知道ExecuteNonQuery返回受影响的行数,但不知道对于SQL 的 select命令返回值为-1。
更准确的说法是:
对于 UPDATE、INSERT 和 DELETE SQL 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
对于上面的说法,还有一点很重要:如果你使用的是存储过程,一定不要使用 SET NOCOUNT ON
今天我的同事,被ExecuteNonQuery 方法给困住了。
同事只知道ExecuteNonQuery返回受影响的行数,但不知道对于SQL 的 select命令返回值为-1。
更准确的说法是:
对于 UPDATE、INSERT 和 DELETE SQL 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
对于上面的说法,还有一点很重要:如果你使用的是存储过程,一定不要使用 SET NOCOUNT ON
否则,返回的值仍为-1。(在.NET 1.1上测试过)
【总结】哪怕是再简单的问题都要彻底搞明白,不要一知半解。
【总结】哪怕是再简单的问题都要彻底搞明白,不要一知半解。
posted @ 2008-05-01 11:01 roboth 阅读(51) 评论(0) 编辑
ConnectionStringSettings setting = new ConnectionStringSettings();
setting = ConfigurationManager.ConnectionStrings["Codematic"];
DbProviderFactory facotory = DbProviderFactories.GetFactory(setting.ProviderName);
IDbConnection connection = facotory.CreateConnection();
connection.ConnectionString = setting.ConnectionString;
connection.Open();
SqlTransaction st = connection.BeginTransaction();
//Execute more sql
st.Commit();
connection.Close();posted @ 2008-05-01 10:30 roboth 阅读(62) 评论(0) 编辑
