存储过程:
Create Procedure euAllStuff
(@original_WorkID int,
@original_ASID int,
@ASID int,
@Name varchar(40),
@Spec varchar(255),
@Unit varchar(20),
@Number varchar(40))
As
.....GridView绑定:
        <UpdateParameters>
            <asp:Parameter Name="original_WorkID" Type="Int32" />
            <asp:Parameter Name="original_ASID" Type="Int32" />
            <asp:Parameter Name="ASID" Type="Int32" />
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="Spec" Type="String" />
            <asp:Parameter Name="Unit" Type="String" />
            <asp:Parameter Name="Number" Type="String" />
        </UpdateParameters>

解决方案 »

  1.   

    在GridView的updating事件和datasource的updating事件中设置断点,看看参数的情况再找问题,就这样是看不出来的
      

  2.   

    以前,我同事出现过这个问题。后来解决了,原来是,在存储过程中有6个参数,但是代码中为Command对象指定了7个参数。所以,楼主可能是参数个数不同造成的。
      

  3.   

    fgsdfsdfsdfsdfsdf
      

  4.   

    As 
    ..... 
    应该是后面的update的语句问题。看看是不是多于7个参数。
      

  5.   

    已解决,居然是这样:
    (1)SQL Server中写的存储过程,其参数名字必须与绑定的名字一致(只写非只读的)。
    (2)取旧值的,需根据格式设置加诸如“original_”之类的前缀。
    (3)不能把参数生成出来,让系统自动获取。问题:
    邦定时难道就不能自己指定参数名吗?难道只能编码才能指定参数名?