菜菜吃菜 2022-04-13 18: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 22: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月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 定制ai直播实时换脸软件
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台