【发布时间】:2012-10-16 20:31:41
【问题描述】:
我正在尝试使我的网页能够使用网格视图从管理页面编辑数据库 (ImportantNews)。但是,当我单击删除时,它只会刷新页面并且不会删除任何内容。我正在使用 ASP.Net 2.0
网格视图
<asp:GridView ID="GridView2" runat="server"
AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" />
<asp:BoundField DataField="Title" HeaderText="Title"
SortExpression="Title" />
<asp:BoundField DataField="Content" HeaderText="Content"
SortExpression="Content" />
</Columns>
</asp:GridView>
<br/>
<b>SqlDataSource</b>
<asp:SqlDataSource ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [ImportantNews]"
DeleteCommand="DELETE FROM [ImportantNews] WHERE [Content] = @Content AND [Title] = @Title">
<DeleteParameters>
<asp:Parameter Name="Title" Type="string"/>
<asp:Parameter Name="Content" Type="string"/>
</DeleteParameters>
</asp:SqlDataSource>
我按照人们的建议做了,但出现了这个错误
必须声明标量变量“@Content”。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:必须声明标量变量“@Content”。
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[SqlException (0x80131904): 必须声明标量变量“@Content”。] System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection)+1953274 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常, Boolean breakConnection) +4849707 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串方法名,布尔异步)+192 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult 结果,字符串方法名,布尔型 sendToPipe)+317 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137 System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand命令,DataSourceOperation操作)+386 System.Web.UI.WebControls.SqlDataSourceView.ExecuteDelete(IDictionary 键,IDictionary oldValues)+303 System.Web.UI.DataSourceView.Delete(IDictionary 键,IDictionary oldValues,DataSourceViewOperationCallback 回调)+89 System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +714 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean CauseValidation, String validationGroup) +869 System.Web.UI.WebControls.GridView.RaisePostBackEvent(字符串事件参数)+207 System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)+10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
【问题讨论】: