如何将多条记录存入一个临时表中,一起提交呢?这样才能做事务处理?帮忙给一段代码学习学习!!!!

解决方案 »

  1.   

    搂主看一下SqlDataAdapter的Update方法
    跟Hashtable没有任何关系
      

  2.   

    SqlDataAdapter的Update方法这个方法不错!其实DATASET就是为你这样设计的!
      

  3.   

    create proc Test_GetAllCanLoanProject
     @projectcode varchar(20)
    as        
               
        select distinct a.projectCode,b.payModeCode,ratifyMoney=sum(b.ratifyMoney) 
        into #pt
        from TP_ProjectMaster a inner join TP_ProjectDetail b on a.projectCode=b.projectCode 
        where a.ratifyStatusCode='3' and (a.executeStatusCode=0 or a.executeStatusCode=1)
        group by b.payModeCode,a.projectCode
            select distinct a.loanType,loanMoney=sum(b.loanMoney)
        into #lt
        from TL_LoanMaster a inner join TL_LoanMoneyDetail b on a.loanCode=b.loanCode
        group by a.loanType    select a.accountType,accountMoney=sum(b.accountMoney) 
        into #at
        from TA_AccountMaster a inner join TA_AccountMoneyDetail b on a.accountCode=b.accountCode
        group by a.accountType    select a.projectCode,a.payModeCode,金额=a.ratifyMoney-b.loanMoney-c.accountMoney
       into #t
       
    from #pt a inner join #lt b on a.payModeCode=b.loanType inner join #at c on a.payModeCode=c.accountType
     if @projectcode<>''
       begin  
       select projectCode=max(a.projectCode),projectName=max(b.projectName)
           ,可借现金金额 =sum(case payModeCode when 2 then 金额 else 0 end)
           ,可借产品金额=sum(case payModeCode when 3 then 金额 else 0 end)
       from #t a inner join TP_ProjectMaster b on a.projectCode=b.projectCode 
       where a.projectCode=@projectcode
     end
    if  @projectcode=''
       begin
         select a.projectCode,b.projectName
           ,可借现金金额 =sum(case payModeCode when 2 then 金额 else 0 end)
           ,可借产品金额 =sum(case payModeCode when 3 then 金额 else 0 end)
       from #t a inner join TP_ProjectMaster b on a.projectCode=b.projectCode
       group by a.projectCode,b.projectName
       order by a.projectCode,b.projectName
       end drop table #pt,#lt,#at,#t 
    drop proc Test_GetAllCanLoanProjectexec Test_GetAllCanLoanProject 'P20040802001'exec Test_GetAllCanLoanProject ''
      

  4.   

    ad.Update()
    非常的好.记住了,该表必须要有主键才行.