高手们帮看看,明明在分析器里手工放一个值可以执行,但为什么程序中执行后,没有出错,但没有执行里面的语句啊?1.存储过程如下:CREATE PROCEDURE PlanCancel 
@ProjectNo  nvarchar(50)
AS
update mpr set status='Cancelled' where status<>'Completed' and MprNo like '%@ProjectNo%'
update msr set status='Cancelled' where status<>'Completed' and MsrNo like '%@ProjectNo%'
update sor set status='Cancelled' where status<>'Completed' and SorNo like '%@ProjectNo%'
GO2.代码如下:SqlCommand SQLCmd = new SqlCommand("PlanCancel",mob.conn);  
SQLCmd.CommandType = CommandType.StoredProcedure;
SQLCmd.Parameters.Add(new SqlParameter("@ProjectNo",SqlDbType.VarChar,50));
SQLCmd.Parameters["@ProjectNo"].Value=ProjectNo;   
SQLCmd.CommandTimeout=Int32.MaxValue;
SQLCmd.ExecuteNonQuery();哪里错了?谢

解决方案 »

  1.   

    应该没有错,
    SQLCmd.Parameters["@ProjectNo"].Value得到的值呢?正确吗?
      

  2.   

    回楼上师兄:
    补充一下,ProjectNo是一个变量,值是可以取到的.
    mob.conn是一个类里的链接SQL语句,也没有错的.
      

  3.   

    SQLCmd.Parameters["@ProjectNo"].Value让他等与一个常数看看数据库有没有变化,
    你上面写的一点也没有错,应该是你的SQLCmd.Parameters["@ProjectNo"].Value得到的是空值,
    所以没有变化