mySqlCommand.Parameters.AddWithValue("@Preparation", sPreparation);AddWithValue是为command,在尾部添加参数,
你要传参数这样就行了
mySqlCommand.Parameters("@Preparation").Value = sPreparation

解决方案 »

  1.   

    我怀疑是不是ProductID有空格的原因你在存储工程select 看看
    select * from  Yp_Products 
    where 
    iProducts_ID = @ProductID  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070130http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    把问题分开来才能看到哪里出错了:
    第一:不要用存储过程,直接把跟新语句在command里面。如果ok说明调用存储过程出错了。
    第二:在sql的服务器上直接调用存储过程,写入参数如果ok说明存储过程没有写错。
    耐心点心细点,能够找到问题的。等你做了上面的实验把结果贴出来大家在帮你看看,想想办法!
      

  3.   

    对了,param的Name 不能有@
    比如
    iProBigSortID=@ProBigSortID
    那你的name直接ProBigSortID
      

  4.   

    不好意思说错了,
    Add是为command,在尾部添加参数,
    刚才没留意,
    不好意思
      

  5.   

    简单的方法: 
    打开SQL SREVER事件探测器,然后执行你的程序. 
    再看看事件探测器里执行的SQL代码.
    把它复制出来,在查询分析器里执行看看.就知道什么原因了.
    如果事件探测器没探测到.就说明根本没执行.
      

  6.   

    非常感谢各位的解答,虽然此问题仍然没有解决。但是还是要非常感谢大家。
    我已经放弃使用存储过程,改用SQL语句了。先不管。等闲下来的时间再研究算了。
      

  7.   

    我知道的可能有两种:
    1.可能你没有设置为自动提交
    2.可能你的表有触发器
    对1,你可以显式的加一个Commit
    对2,再检查一下数据库
      

  8.   

    你可以打开SQL Server的事件侦听器,看看有没有实际执行什么语句,如果执行了就把实际执行的存储过程的语句内容贴出来。这样更有意义。欢迎各位来我的blog作客:http://blog.csdn.net/aafshzj