我通过查询字符串传递值,我希望该值成为构建GridView的selectcommand的一部分。但我收到以下错误。任何想法如何解决?
错误:转换nvarchar值'<%= QueryString2%>'时转换失败数据类型int。
C#:
protected void Page_Load(object sender, EventArgs e)
{
QueryString=Convert.ToInt32(Request.QueryString["tourid"]);
}
private int _querystring;
public int QueryString
{
get
{
return _querystring;
}
set
{
_querystring = value;
}
}
ASPX:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ChinatowndbConnString %>"
SelectCommand="SELECT * FROM [vwSchedule] Where TourId=@tid">
<SelectParameters>
<asp:Parameter DefaultValue="<%=QueryString%>" Name="tid" />
</SelectParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
您不能使用<%= ... %>
来分配服务器控件属性的值。因此,您的DefaultValue
被设置为文字字符串"<%=QueryString%>"
,这不是有效的整数。
尝试改为使用QueryStringParameter
:
<SelectParameters>
<asp:QueryStringParameter
Name="tid"
DbType="Int32"
QueryStringField="tourid"
/>
</SelectParameters>