尝试构建select命令时出现参数错误

时间:2012-11-30 12:09:18

标签: asp.net

我通过查询字符串传递值,我希望该值成为构建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>

1 个答案:

答案 0 :(得分:0)

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

尝试改为使用QueryStringParameter

<SelectParameters>
   <asp:QueryStringParameter  
      Name="tid" 
      DbType="Int32" 
      QueryStringField="tourid"
   />
</SelectParameters>