日期:2014-05-18  浏览次数:20395 次

GridView里删除会报错?
GridView里删除会报错,

Must declare the scalar variable "@SnoGonggao".
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: Must declare the scalar variable "@SnoGonggao".

我的SnoGonggao是表的主键,但是DeleteParameters里已经定义了Name="SnoGonggao"了啊,怎么回事啊?

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:GDSSConnectionString %>"
SelectCommand="SELECT [SnoGonggao], [datetime], [gonggao] FROM [gonggao]"
DeleteCommand="DELETE FROM [gonggao] WHERE [SnoGonggao] = @SnoGonggao" InsertCommand="INSERT INTO [gonggao] ([datetime], [gonggao]) VALUES (@datetime, @gonggao)"
UpdateCommand="UPDATE [gonggao] SET [datetime] = @datetime, [gonggao] = @gonggao WHERE [SnoGonggao] = @SnoGonggao">
<DeleteParameters>
<asp:Parameter Name="SnoGonggao" Type="Int32" />
</DeleteParameters>

------解决方案--------------------
GridView里加 DataKeyNames="SnoGonggao"