2017-02-24 3 views
-1

Wie kann ich mehrere Textfelder aus einer Datenbank mit ASP.Net durchsuchen?So durchsuchen Sie mehrere Textfelder aus der Datenbank

protected void SearchButton_Click (object sender, EventArgs e) {if (RefNo.Text == "@search") { string str = „Wählen Sie [ITEM No #], [Firmenname], [Disziplin Erforderlich ], [Dienstbeschreibung], Institution, [Award Date] von PSP_Report wo ([ITEM NO #] wie '%' + @search + '%') "; SqlCommand xp = neuer SqlCommand (str, con); xp.Parameters.Add ("@ search", SqlDbType.NVarChar) .Wert = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da = neu SqlDataAdapter(); da.SelectCommand = xp; DataSet ds = neues DataSet(); da.Fill (ds, "ARTIKEL-Nr."); Search.DataSource = ds; Suche.DataBind(); con.Close(); } sonst if (CompanyName.Text == "@searche") { string str = "Wählen Sie [ITEM Nr.], [Firmenname], [Erforderliche Disziplin], [Servicebeschreibung], Institution, [Vergabe Datum ] von PSP_Report wo ([Firmenname] wie '%' + @Suche + '%') "; SqlCommand xp = neuer SqlCommand (str, con); xp.Parameters.Add ("@ search", SqlDbType.NVarChar) .Wert = RefNo.Text; con.Open(); xp.ExecuteNonQuery(); SqlDataAdapter da = neu SqlDataAdapter(); da.SelectCommand = xp; DataSet ds = neues DataSet(); da.Fill (ds, "Firmenname"); Search.DataSource = ds; Suche.DataBind(); con.Close(); } } }

+0

was ist Ihre Frage ?. Bitte fügen Sie weitere Details hinzu. Wir können nicht raten, was Sie tun möchten – NicoRiff

+0

Sieht so aus, als ob Sie mehr als eine Textbox suchen. Sind Sie auf der Suche nach einem saubereren Weg oder ist etwas im Code kaputt? Hier gibt es nicht viele Details oder Klarstellungen, um die Frage zu beantworten ... Zumindest nicht von meinem schnellen Blick. –

+0

Ihr Code macht keinen Sinn. Wenn RefNo.Text gleich '@ search' ist, dann fügen Sie einen Parameter namens' @ search' mit dem Wert '' search' hinzu. Der Else-Block enthält auch einen Fehler. Sie verwenden '@ search', aber Sie fügen einen Parameter hinzu, der immer noch' 'search'' genannt wird. – Steve

Antwort

0

Basierend auf meinem Verständnis, nehme ich Sie mehrere Textfelder auf Ihrer Suche GUI haben, und Sie möchten, um dynamisch eine select-Anweisung bauen basierend auf Benutzereingaben.

Ein Weg zu tun ist etwas wie unten. Nachdem Sie sicher sind, dass die Auswahl die gewünschte ist, haben Sie eine Methode, um Ihre Abfrage mit Ihrer konstruierten Auswahl auszuführen.

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:

  • Seien Sie sich bewusst über SQL-Injection.

  • Ich würde nicht # oder Leerzeichen für Spaltennamen verwenden.

Verwandte Themen