from:http://www.cnblogs.com/David-weihw/archive/2006/11/17/563701.html
今天我的同事,被ExecuteNonQuery 方法给困住了。
   
    同事只知道ExecuteNonQuery返回受影响的行数,但不知道对于SQL 的 select命令返回值为-1。
     
   更准确的说法是

       对于 UPDATEINSERT 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) 编辑