2016-07-15 10 views
-2

Ich versuche, auf eine Suchschaltfläche mit mehreren Eingaben in der Textbox zu klicken. Ich habe mich umgesehen und verschiedene Methoden ausprobiert, aber irgendwie hat es nicht geklappt. Unten ist der Code für das Click-Ereignis:Zugriff Mehrere Suchfilter

private void btn_table_Click(object sender, EventArgs e) { 
    try { 
     connection.Open(); 

     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 

     string query = "select [Name],[Sex],[Number] from RecordsSheet [Name] like('" + textBox1.Text + "%'),[Sex]=('" + textBox2.Text + "%'),[Number]=('" + textBox3.Text + "%'"); 

     command.CommandText = query; 

     OleDbDataAdapter da = new OleDbDataAdapter(command); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     dataGridView1.DataSource = dt; 

     connection.Close(); 
    } 
    catch (Exception ex) { 
     MessageBox.Show("Error " + ex); 
    } 
} 

Antwort

3

Sie mixen derzeit equals und LIKE-Syntax für dieselben Operationen, was zu einigen falsch gebildeten Abfragen führen wird, sowie das Fehlen einer WHERE-Klausel, um sie korrekt zu verwenden.

Verwendung Parametrierung

Wenn Sie einen bestimmten Suchbegriff haben, betrachten es als Parameter mit LIKE Abschnitt vordefiniert in Ihrer Abfrage hinzu:

// Add your properties using parameters 
var query = "SELECT [Name],[Sex],[Number] FROM RecordsSheet WHERE [Name] LIKE ? AND [Sex] LIKE ?,[Number] LIKE ?"; 

Dann fügen Sie Ihre Parameter zusammen mit der notwendige Platzhalter zum Erstellen Ihrer Abfrage:

OleDbDataAdapter da = new OleDbDataAdapter(command); 
// Set your parameters 
da.SelectCommand.Parameters.AddWithValue("p1",textBox1.Text + "*"); 
da.SelectCommand.Parameters.AddWithValue("p2",textBox2.Text + "*"); 
da.SelectCommand.Parameters.AddWithValue("p3",textBox3.Text + "*"); 

Dieser Ansatz führt nicht nur zu r Es sollten Probleme mit der Syntax behoben werden, aber es sollte auch dazu beitragen, dass Sie vor unangenehmen Dingen wie SQL-Injection-Angriffen geschützt sind.

-1

mit [Sex] und [Nummer] „=“ mit „gefällt mir“ ersetzen, die .. helfen kann, wenn das Ergebnis nicht Beschreibung abgeben.