菜菜吃菜 2022-04-13 10:01 采纳率: 57.5%
浏览 37
已结题

c# 循环后完成后 提交全部存储过程

  comStr.Parameters.Add("@StatusID", SqlDbType.Int);
            comStr.Parameters.Add("@IOTime", SqlDbType.DateTime);
            comStr.Parameters.Add("@UniqueId", SqlDbType.BigInt);
            comStr.Parameters.Add("@DataFlag", SqlDbType.VarChar, 50);
        
            foreach (int i in gridView9.GetSelectedRows())
             {
              
                DataRow row = gridView9.GetDataRow(i);
                 string UniqueId = row[2].ToString();
            
                 string IOTime = row[8].ToString();


          
                
                comStr.Parameters["@StatusID"].Value = "256";
                comStr.Parameters["@IOTime"].Value = IOTime;
                comStr.Parameters["@UniqueId"].Value = UniqueId;
                comStr.Parameters["@DataFlag"].Value = "2";

                comStr.ExecuteNonQuery();
                //conStr.Close();//关闭连接

            }

循环添加和提交,怎样实现循环添加 最后一次提交全部呢?

  • 写回答

3条回答 默认 最新

  • 歇歇 2022-04-13 14:10
    关注

    利用事务处理

    
    conStr.Open();        
    SqlCommand comStr= conStr.CreateCommand();
    SqlTransaction tran = conStr.BeginTransaction();
    comStr.Transaction = tran;
    comStr.Parameters.Add("@StatusID", SqlDbType.Int);
                comStr.Parameters.Add("@IOTime", SqlDbType.DateTime);
                comStr.Parameters.Add("@UniqueId", SqlDbType.BigInt);
                comStr.Parameters.Add("@DataFlag", SqlDbType.VarChar, 50);
           try
       { 
                foreach (int i in gridView9.GetSelectedRows())
                 {
                  
                    DataRow row = gridView9.GetDataRow(i);
                     string UniqueId = row[2].ToString();
                
                     string IOTime = row[8].ToString();
        
                    comStr.Parameters["@StatusID"].Value = "256";
                    comStr.Parameters["@IOTime"].Value = IOTime;
                    comStr.Parameters["@UniqueId"].Value = UniqueId;
                    comStr.Parameters["@DataFlag"].Value = "2";
     
                    comStr.ExecuteNonQuery();
    
                }
      }
    catch (SqlException)
       {
         tran.Rollback();
         return;
       }
    finally
     {
         conStr.Close();
     }
    tran.Commit();
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月14日
  • 创建了问题 4月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部