2017-02-24 6 views
-1

ASP.Netを使用してデータベースから複数のテキストボックスを検索するにはどうすればよいですか?複数のテキストボックスをデータベースから検索する方法

保護無効SearchButton_Click(オブジェクト送信者、EventArgsの電子) {場合(RefNo.Text == "@search") { 文字列str =「[ITEM NO#]を選択し、[会社名]、[調教必須PSP_Reportから([ITEM NO#]のように '%' + @search + '%') "; [Service Description]、Institution、[Award Date] SqlCommand xp =新しいSqlCommand(str、con); xp.Parameters.Add( "@ search"、SqlDbType.NVarChar).Value = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da =新しいSqlDataAdapter(); da.SelectCommand = xp; DataSet ds = new DataSet(); da.Fill(ds、 "ITEM No#");Search.DataSource = ds;Search.DataBind(); con.Close(); } else(CompanyName.Text == "@searche") { string str = "[ITEM No#]、[Company Name]、[Discipline Required]、[Service Description]、Institution、[Award Date ] from PSP_Report where([Company Name] like '%' + @searche + '%'); SqlCommand xp =新しいSqlCommand(str、con); xp.Parameters.Add( "@ search"、SqlDbType.NVarChar).Value = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da =新しいSqlDataAdapter(); da.SelectCommand = xp; DataSet ds = new DataSet(); da.Fill(ds、 "Company Name");Search.DataSource = ds;Search.DataBind(); con.Close(); }} }

+0

あなたの質問は何ですか。詳細を追加してください。あなたは何をしたいのか推測できません – NicoRiff

+0

複数のテキストボックスを検索しているようです。あなたはよりクリーンな方法を求めているのですか、コードに何か壊れていますか?質問に答えるためにここに多くの詳細や明確化はありません。少なくとも私の素早い見た目からではありません。 –

+0

あなたのコードは意味をなさない。 RefNo.Textが '@ search'に等しい場合、' @ search'と等しい値を持つ '@ search'という名前のパラメータを追加します。 elseブロックにもエラーが含まれています。 '@ searche'を使用しますが、まだ' @ search'という名前のパラメータを追加します – Steve

答えて

0

私の理解に基づいて、私はあなたの検索GUI上で複数のテキストボックスを持っていると仮定して、あなたは動的にユーザーの入力に基づいて、SELECTステートメントを構築したいです。

片道は次のようなものです。選択があなたが望むものであることを確かめた後、あなたの構築された選択であなたの質問を実行するメソッドを持っています。

protected void SearchButton_Click(object sender, EventArgs e) 
    { 
     string str = "Select [ITEM No#], [Company Name], [Discipline Required], [Service Description], Institution, [Award Date] from PSP_Report where 1=1 "; 

     if (!string.IsNullOrWhiteSpace(RefNo.Text)) 
     { 
      str += $" and ([ITEM NO#] like '%'{RefNo.Text}'%')";     
     } 
     if (!string.IsNullOrWhiteSpace(CompanyName.Text)) 
     { 
      str += $" and ([Company Name] like '%'{CompanyName.Text}'%')"; 
     } 

PS:

  • は、SQLインジェクションについて注意してください。

  • カラム名に#またはスペースを使用しません。

関連する問題