为什么把
strUpdateSQL = "UPDATE E_NtnLoan SET FromDate='" + agreementDate.ToString() + "', AgreementId='" + schId + year + "'+(SELECT IdCardNum FROM StuInfo,E_NtnLoan WHERE StuInfo.Id=E_NtnLoan.StuInfoId AND Eid=" + arrIds[i] + ") WHERE Eid=" + arrIds[i] + "";
UpdateDb();
语句放在程序段里面和其他的程序一起执行时候 
 sb.Append(" update debtmoney ");
                    sb.Append(" set govrate=case  ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) < cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then   govrate +" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else govrate ");
                    sb.Append(" end , ");
                    sb.Append(" shouldrate=case ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) >= cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then  shouldrate+" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else shouldrate ");
                    sb.Append(" end  ");
                    sb.Append(" from debtmoney inner join stuinfo on debtmoney.stuinfoid=stuinfo.Id where debtmoney.stuinfoid="+stuinfoid+" ");
                    dp.CommandText = sb.ToString();
                   
                    dp.ExecuteNonQuery();
这个语句产生的结果就不对 当把这个语句去掉以后就正确啊 为什么恩啊
而且把这个语句放在前面和后面
sb.Append(" update debtmoney ");
                    sb.Append(" set govrate=case  ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) < cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then   govrate +" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else govrate ");
                    sb.Append(" end , ");
                    sb.Append(" shouldrate=case ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) >= cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then  shouldrate+" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else shouldrate ");
                    sb.Append(" end  ");
                    sb.Append(" from debtmoney inner join stuinfo on debtmoney.stuinfoid=stuinfo.Id where debtmoney.stuinfoid="+stuinfoid+" ");
                    dp.CommandText = sb.ToString();
                   
                    dp.ExecuteNonQuery();
这部分执行的结果不一样
 govrate  总是为0 啊 而且
sb.Append(" update debtmoney ");
                    sb.Append(" set govrate=case  ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) < cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then   govrate +" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else govrate ");
                    sb.Append(" end , ");
                    sb.Append(" shouldrate=case ");
                    sb.Append(" when  cast('" + de.ToShortDateString() + "' as smalldatetime ) >= cast((CAST(EduYear + JionYear + ExtYear AS varchar)  + '-' + CAST(ExtMonth + 8 AS varchar) + '-' + cast(ExtDay + 1 AS varchar)) as smalldatetime )   then  shouldrate+" + ntnloan_lendmoney + "*" + rate + " ");                    sb.Append(" else shouldrate ");
                    sb.Append(" end  ");
                    sb.Append(" from debtmoney inner join stuinfo on debtmoney.stuinfoid=stuinfo.Id where debtmoney.stuinfoid="+stuinfoid+" ");
                    dp.CommandText = sb.ToString();
                   
                    dp.ExecuteNonQuery();
在这里 后半个语句就可以正常执行  前半个就不能正常执行啊
而且在查询分析器上我写的流就能正常执行啊

解决方案 »

  1.   

    把你的sql整理出来就行啦,写这么长~
      

  2.   

    直接贴sql语句嘛,看起来眼花。。
      

  3.   

    关键是帖sql语句和这个没有什么区别啊 都是一样的啊   请大家帮帮忙啊    
      

  4.   

    太长了...看的头痛....没看完.讲一下,我平常拼字符串的时候遇到的问题,希望有帮助.
    select columnA,columnB
    from aa 
    在查询分析器中可以执行,但是在拼字符串中,你拼成的字符串就成了select columnA,columnBfrom aa. 少了一个空格.还查询分析器支持的,.net的那玩意未必能支持.比如说GO,其它的有待探索...