4

「私はasp.netvbで作業しており、URLから変数を取得して、それをsqlデータソースのselectステートメントに渡そうとしています。これまでのところ、これはありますが、asp.netでは機能しません。

    <%Dim PersonNumId as String
    PersonNumID = Request.QueryString("Person")
    Dim PersonNum2
    PersonNum2 = Convert.ToInt32(PersonNumID)%>
    <aspSqlDataSource (other information required) SelectCommand="Select Name From Interests Where ID=@PersonNumID"  />
    <SelectParameters><asp:QueryStringParameter DefaultValue="<%=PersonNum2%>" DbType=Int32/></SelectParameters

私はそれを変換するいくつかの異なる方法を試しましたが、最終結果がクエリステートメントにある変数がintである必要があります。私はこれに不慣れなので、アドバイスをいただければ幸いです。

4

2 に答える 2

4

答えは単純なものになりました(asp.netを知っている人にとって)<asp:SqlDatasource><Selectparameters>そこには、クエリするフィールドをquerystringfieldの下に入力できるオプションがあり、<asp:QueryStringParameter>自動的に変換または解析して目的のタイプに変換すると思います。私は私の質問にこれを持っていましたが、それが実際に何をしたのかわかりませんでした。どこか別の例で見たので、querystringParameterのみを使用しました。だから、これは私が得たものです。

    <asp:SqlDataSource (other information required) SelectCommand="Select Name From Interests Where ID=@PersonNum">
   <SelectParameters>
   <asp:QueryStringParameter Name="PersonNum" QueryStringField="Person" DbType="Int32"/></SelectParameters></asp:SqlDataSource>
于 2012-12-12T15:33:32.333 に答える
2

背後にあるコードで試すことができます:

SqlDataSource1.SelectCommand = "Select * from notes where ID=" + Request.QueryString["ID"];

SQLインジェクションから身を守るために、ベストプラクティスを使用してください。

于 2012-12-05T21:58:00.867 に答える