2016-05-29 17 views
2

Ich verwende den folgenden Code, um meine datagridview und die select Anweisung zu binden, um die Datensätze zu bekommen, die ich brauche.Filter durch Eingabe in Textfeld

Alles funktioniert gut in diesen Codezeilen, aber ich möchte die Datensätze automatisch filtern, wenn der Benutzer etwas in textbox eingibt und beim Löschen der Daten die Datensätze in den Ausgangszustand zurückkehren, wenn das Formular geladen wird. Könnte mir jemand ein paar Tipps geben?

Hier ist mein Code:

public nir() 
{ 
    InitializeComponent(); 
    nir_load(); 
} 

void nir_load() 
{ 
    string cs = "Data Source=IS020114\\CODRINMA;Initial Catalog=gcOnesti;Integrated Security=True"; 
    string select = "select p.cod as Numar, p.data as Data, p.doc_cod as NrDocFurnizor, g.nume as Gestiune, c.nume as Furnizor, p.validat as Validat, p.facturat as Contat from primar p inner join gestiuni g on p.part2=g.gest_id inner join cf c on p.part1=c.cf_id where p.tip=2"; 

    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand(select, con); 

     con.Open(); 
     SqlDataAdapter sda = new SqlDataAdapter(); 
     sda.SelectCommand = cmd; 

     DataTable dt = new DataTable(); 
     sda.Fill(dt); 

     BindingSource bs = new BindingSource(); 
     bs.DataSource = dt; 
     dataGridView1.DataSource = bs; 
    } 
} 

private void btnSearch_Click(object sender, EventArgs e) 
{ 
    string cs = "Data Source=IS020114\\CODRINMA;Initial Catalog=gcOnesti;Integrated Security=True"; 
    string select = "select p.cod as Numar, p.data as Data, p.doc_cod as NrDocFurnizor, g.nume as Gestiune, c.nume as Furnizor, p.validat as Validat, p.facturat as Contat from primar p inner join gestiuni g on p.part2=g.gest_id inner join cf c on p.part1=c.cf_id where cod='" +txtnr.Text+"' and data='" + dtpData.Value.ToString("yyyy-MM-dd") +"' and p.tip=2"; 

    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand(select, con); 

     con.Open(); 
     SqlDataAdapter sda = new SqlDataAdapter(); 
     sda.SelectCommand = cmd; 

     DataTable dt = new DataTable(); 
     sda.Fill(dt); 

     BindingSource bs = new BindingSource(); 
     bs.DataSource = dt; 
     dataGridView1.DataSource = bs; 
    } 
} 
+0

In derselben Situation habe ich jQuery verwendet. Auf meiner Seite gab es ein Eingabefeld und darunter eine div-table, die Daten von SQL Server lädt. Wenn Benutzer etwas in das Eingabefeld eingeben, wird die folgende Tabelle basierend auf Benutzereingaben gefiltert. – gofr1

+0

Bitte klären Sie: Möchten Sie suchen, wie der Titel impliziert oder filtern, wie Ihre Beschreibung tut. Beide werden hier recht oft beantwortet. – TaW

+0

@TaW - zum Filtern habe ich mich falsch erklärt. Aber ich konnte das mit dem 'KeyUp' -Ereignis machen. – cdrrrrrr

Antwort

0

I verwendet private void txtNumber_KeyUp(object sender, KeyEventArgs e) Veranstaltung und es hat gut funktioniert.