RowFilter mit SQL Abfrage möglich?



  • Guten Morgen!

    Ist es möglich, dass ich mit folgender Abfrage auch über RowFilter Daten filtern kann?

    public static DataTable BestellungEKHauptdaten()
            {
                try
                {
                    using (peconEntities ctx = new peconEntities())
                    {
                        string sQuery = "SELECT * FROM tblbestellungen_ek LEFT JOIN tblbestellung_einkauf_lieferantendaten ON tblbestellungen_ek.idBestellungEK = " +
                        "tblbestellung_einkauf_lieferantendaten.FK_bestellungsEKId GROUP BY tblbestellungen_ek.bestellNummer ORDER BY tblbestellungen_ek.bestellDatum DESC";
    
                        var result = ctx.ExecuteStoreQuery<EKArtikel>(sQuery).ToList();
    
                        DataTable tbl = IEnumerableToDataTable.ToDataTable(result);
                        return tbl;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Fehler: BestellungEKHauptdaten\n" + ex.InnerException.Message, "Datenbankfehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return null;
                }
            }
    


  • Wie meinen? 😕



  • Ohh ... hab ich vergessen

    So bin ich die Daten

    dataGridView1.DataSource = null;
    dataGridView1.Columns.Clear();
    dataGridView1.DataSource = BestellungEKHauptdaten();
    

    Und dann der Filter über eine Textbox

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
         dv.RowFilter = string.Format("BestellNummer LIKE '%{0}%'", textBox1.Text);
    }
    

    Es passiert einfach nichts ... 😕



  • Was ist denn die Variable 'dv' bei dir?
    Sollte dies eine DataView sein, so müßtest du dann aber auch dieses DataView an das DataGridView binden.

    Bisher haben deine beiden Methoden nichts miteinander zu tun - und daher siehst du auch keine Änderung 😉



  • Entschuldigung! Das kommt davon, dass ich die Methode in zwei unterschiedlichen Forms verwende und leider beim Posten das falsche erwischt habe - sorry!
    Und ganz toll ... während ich hier das nochmals getestet habe, funktioniert es nun!

    DataView dv = new DataView();
    ataGridView1.DataSource = null;
    dataGridView1.Columns.Clear();
    dv = BestellungEKHauptdaten().DefaultView();
    dataGridView1.DataSource = dv;
    

    ABER ich habe eine weitere sehr komplexe SQL Abfrage, da geht nun wirklich devinitiv nix. D.h. die Daten werden beim Binden (wie hier im Post dargebstellt) gebunden, Abfrage ebenso über TextChanged.

    Nur das SQL Statement sieht so aus - ist dies evtl. zu komplex?

    string sQuery = "SELECT tblBeEinzel.Lieferdatum, tblBest.KundeID, tblBest.Kunde, tblBest.BestellNummer, " +
                                        "tblBeEinzel.KontraktNummer, tblBeEinzel.ArtikelID, tblartikel.Ident, " +
                                        "tblArtikel.Bezeichnung_deutsch, tblBeEinzel.Anzahl, " +
                                        "tblBeEinzel.einzelpreis, Anzahl*einzelpreis AS Bestellwert, tblKunden.KundenNr, tblKunden.Land, " +
                                        "tblBest.Bestelldatum FROM (tblKunden RIGHT JOIN tblBest ON tblKunden.KundenNr = tblBest.KundeID) " +
                                        "INNER JOIN (tblBeEinzel INNER JOIN tblArtikel ON tblBeEinzel.ArtikelID = tblArtikel.ArtikelID) ON " +
                                        "tblBest.BestellID = tblBeEinzel.BestellID " +
                                        "ORDER BY tblBeEinzel.Lieferdatum DESC";
    

Anmelden zum Antworten