0

我正在通过查询字符串传递一个值,我希望该值成为我的选择命令的一部分以构建我的 GridView。但我收到以下错误。任何想法如何解决?

错误:将 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>
4

1 回答 1

0

您不能使用<%= ... %>来分配服务器控件属性的值。结果,您DefaultValue被设置为文字 string "<%=QueryString%>",这不是一个有效的整数。

尝试使用 aQueryStringParameter代替:

<SelectParameters>
   <asp:QueryStringParameter  
      Name="tid" 
      DbType="Int32" 
      QueryStringField="tourid"
   />
</SelectParameters>
于 2012-11-30T12:37:25.753 回答