解决方案 »

  1.   

    用sql server profiler监控一下,看提交到数据库的语句是神马
    拿监控出来的语句在查询分析器执行一下
      

  2.   

    存储过程里把你的sql print出来
      

  3.   

    提交到数据库语句是插入,执行过存储过程是可以的,而且,我把表的字段改成允许空值后市可以插入的
    你确定你是拿profiler监控到的语句执行的?
      

  4.   

    id是否为空,你调试程序或者在存储过程开始时候print就知道了
      

  5.   

    提交到数据库语句是插入,执行过存储过程是可以的,而且,我把表的字段改成允许空值后市可以插入的
    你确定你是拿profiler监控到的语句执行的?
    那个在哪里监控
      

  6.   

    id是否为空,你调试程序或者在存储过程开始时候print就知道了
    我在表里看了    ID不允许为空
      

  7.   

     cmd.Parameters.Add("@gooodsinfoid", SqlDbType.Int).Value = gsi;你这句不报异常???不可能吧
    SqlParamter param = new SqlParamter("@gooodsinfoid",SqlDbType.Int){Value=gsi};确认你的存储过程里面是这个接受值的@gooodsinfoid
      

  8.   

    说明参数值没有传递进去呗,是空的
    语法不报错不代表就没有问题了
    .add.value这种语法,你到底把值传到什么玩意里去了
      

  9.   

    ok了   解决了~  是因为存储过程里面有查询ID的值     然后我用的测试库里的表是空表,它查询不到,就报错了   谢谢大家了