115122

C Sharp SQL Abfrage Problem

Hallo,

ich möchte in C# eine Verbindung zu einer DB/Tabelle herstellen, eine Abfrage starten und die Ergebnismenge darstellen. Das funktioniert auch soweit mit folgendem Code:

SqlConnection consql = new SqlConnection("user id=XXX; password=XXX; server=XXX;" +  
                    "database=XXX; connection timeout=5");  
                try
                {
                    consql.Open();

                    SqlCommand cmd = new SqlCommand("select id from tabelle", consql);  
                    cmd.ExecuteNonQuery();

                    SqlDataReader reader = cmd.ExecuteReader();
                    int zaehler = 0;

                    while (reader.Read())
                    {
                        this.lbID.Items.Add(reader["id"]);  
                        zaehler += 1;
                    }
                    MessageBox.Show("Anzahl der Datensätze: " + Convert.ToString(zaehler));  
                    reader.Close();

                    consql.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("SQL Server: Nicht erfolgreich.", "Test", MessageBoxButtons.OK);  
                }

Wenn ich nun auf die bestehende Ergebnismenge z.B. einen ORDER BY laufen lassen möchte, muss ich dann eine neue Select-Anweisung schreiben oder kann ich die ORDER BY-Anweisung irgendwie auf die Ergebnismenge anwenden ?

Und falls ich für jede solcher Anweisungen (sei es insert, update, delete, order by etc..) eine neue Select-Anweisung erstellen muss, wirkt sich das merklich auf die Performance aus ?

Grüße,
lordzwieback
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 297323

Url: https://administrator.de/forum/c-sharp-sql-abfrage-problem-297323.html

Ausgedruckt am: 13.07.2025 um 15:07 Uhr

114757
114757 25.02.2016 aktualisiert um 11:12:58 Uhr
Moin,
lade deine Daten in ein Datatable Object dann kannst du es nach belieben sortieren/umsortieren ...
stackoverflow.com/questions/6073382/read-sql-table-into-c-sharp- ...
msdn.microsoft.com/de-de/library/zk13kdh0%28v=vs.71%29.aspx

Gruß jodel32
115122
115122 25.02.2016 um 11:24:17 Uhr
Vielen Dank, ich werde mir das mal anschauen und ggf Rückmeldung geben.
115122
115122 25.02.2016 um 12:34:28 Uhr
Ich verstehe so manches nicht. Code sieht momentan so aus:

DataTable dataTable = new DataTable();

                    SqlConnection consql = new SqlConnection("user id=XXX; password=XXX; server=XXX;" +  
                        "database=XXX; connection timeout=5");  
                    string query = "select id from tabelle";  

                    SqlCommand cmd = new SqlCommand(query, consql);
                    consql.Open();

                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dataTable);

                    //HIER FEHLT DAS VERSTÄNDNIS

                    foreach (DataRow dRow in dataTable.Rows)
                    {
                        this.lbID.Items.Add(dRow["Rec_id"]);  
                    }

                    //Befehl ausführen
                    //SqlDataReader reader = cmd.ExecuteReader();
                    //int zaehler = 0;
                    ////Daten einlesen
                    //while (reader.Read())
                    //{
                    //    this.lbID.Items.Add(reader["id"]); 
                    //    zaehler += 1;
                    //}
                    //MessageBox.Show("Anzahl der Datensätze: " + Convert.ToString(zaehler)); 
                    //reader.Close();
                    // close database connection
                    consql.Close();
                    da.Dispose();
                }
                catch (Exception)
                {
                    MessageBox.Show("SQL Server: Nicht erfolgreich.", "Test", MessageBoxButtons.OK);  
                }


Ich verstehe nicht, wie ich auf den dataTable Inhalt zugreife bzw. wie ich z.B. eine "ORDER BY id desc" auf den dataTable anwende. Das Ausgeben in der foreach scheint mir richtig zu sein.