Announcement

Collapse
No announcement yet.

Datenbank durchsuchen und anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank durchsuchen und anzeigen

    Hallo,

    Ich versuche gerade eine datenbank zu durchsuchen und die ergebnisse in einem Datagrid anzuzeigen.

    Momentan habe ich folgenden code dazu:
    Code:
                    SqlConnection con = new SqlConnection("Data Source=DBServer;Initial Catalog=Table1;Integrated Security=True;Connect Timeout=30;User Instance=True;");
                    string strSQL = "SELECT art, Gang FROM Table1";
                    SqlCommand cmd = new SqlCommand(strSQL, con);
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                        //data grid fuellen
                    dr.Close();
                    con.Close();
    folgendes müsste ich nun noch einfügen:
    - den Suchtext (WHERE)
    - die art

    Bei der Art habe ich 5 möglichkeiten, die man per checkbox auswählen kann, also müsste ich vorher herausfinden, welche box ausgewählt wurde um dann nur noch die Einträge zu durchsuchen, welche in der art den richtigen Wert besitzen.

    Der suchtext wird in einer Textbox eingegeben, also müsste ich den in ein string umwandeln?

    Liege ich soweit schonmal richtig mit meinen vermutungen und dem bisherigen code, oder hab ich irgendwelche fehler gemacht?
    Was müsste ich denn im DataGridView als Data source angeben? die tabelle, oder gar nichts?

    Danke schonmal für eure unterstützung.

  • #2
    Hallo,

    Soweit bist du schon auf dem richtigen Weg, nur eignet sich der DataReader fuer solche Operationen / Vorhaben nicht besonders. Das DataGrid benoetigt zB eine DataTable als Datenquelle und die muesstest du mit dem DataReader vorher 'muehsam' befuellen.

    Fuer solche Zwecke eignet sich der DataAdapter, denn der gibt dir gleich schon ein DataSet / DataTable retour und das kannst du dann sofort als DataSource fuer dein Grid verwenden.

    Dein Code wuerde sich auch nur minimal aendern; ich hab den Code nicht getestet, aber muesste in etwa so funktionieren

    Code:
    SqlConnection con = new SqlConnection(...);
    string strSQL = "SELECT ... WHERE ";
    if (this.checkbox1.Checked)
    { strSQL += "Feld1 = '" + this.textbox1.Text; }
    SqlCommand cmd = new SqlCommand(strSQL, con);
    DataSet ds = new DataSet();
    ds.Locale = System.Globalization.CultureInfo.InvariantCulture;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    da.Close();
    da.Dispose();
    cmd.Dispose();
    con.Close();
    con.Dispose();
    this.datagrid1.DataSource = ds;
    *-- robert.oh. --*

    Comment

    Working...
    X