0

クエリ文字列を介して値を渡しています。その値をselectcommandの一部にして、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

<%= ... %>を使用して、サーバー コントロール プロパティの値を割り当てることはできません。その結果、 yourは有効な整数ではないDefaultValueリテラル string に設定されています。"<%=QueryString%>"

QueryStringParameter代わりにa を使用してみてください:

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