1

次のgridView selectコマンドがあります-

SelectCommand="SELECT [columnA] FROM [DB].[dbo].[TABLE] WHERE value = 1

実行すると、グリッドビューに目的の結果が返されますが、前のページから文字列値を渡してテキストボックスに入力し、ページの読み込み時にグリッドビューSelectCommandをその文字列によって決定したいと考えています。

だから何かのような -

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

SelectCommand="SELECT [columnA] FROM [DB].[dbo].[TABLE] WHERE value = <%TextBox1.Text%>

ただし、これはページの読み込み時に文字列値を取得していません。

4

2 に答える 2

0

この種のクエリはSQL インジェクションの傾向があります。代わりにパラメーターを使用できます。QueryString から取得した値を使用します。

SqlCommand comm = new SqlCommand();
comm.CommandText = "SELECT [columnA] FROM [DB].[dbo].[TABLE] WHERE value = @value";
comm.Parameters.AddWithValue("value", Request.QueryString["string"]);    
于 2013-01-29T12:33:33.087 に答える
0

上記のコメントは真実です。この種の方法論では、SQL インジェクションにさらされます...しかし、質問に答えるには:

これはさまざまな方法で行うことができますが、必要な値はクエリ文字列を使用して渡されるため、テキスト ボックスはもはや必要ありません。したがって、これに bash を与えます (VB.Net):

Protected Sub Page_Load(sender as Object, e as System.EventArgs) Handles Me.Load

  Dim myString As String = Request.Querystring("NameOfQuerystring")

  ' Call Sub and pass in value
  GenerateOutput(myString)

End Sub


Sub GenerateOutput(ByVal DBValue As String)

  'Perform Database call using the DBValue

  SelectCommand = "SELECT [columnA] FROM [DB].[dbo].[TABLE] WHERE value = " & DBValue

End Sub

これを C# に変換する場合は、次のリンクを使用してください: Convert VB.NET to C#

于 2013-01-29T12:28:33.693 に答える