Mit c# die psotgresql Spalte gezielter auslesen...

 try
                {

                    string connstring = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
                        Form1.tbHost, Form1.tbPort, Form1.tbUser, Form1.tbPass, Form1.tbDataBaseName);

                    NpgsqlConnection conn = new NpgsqlConnection(connstring);
                    conn.Open();

                  //  "select * from artikel where barcode='" + (eingabe) + "';";
                    string SQL = "select * from artikel where barcode BETWEEN '311' AND '321' ;";
                    NpgsqlCommand command = new NpgsqlCommand(SQL, conn);
                    NpgsqlDataReader dr = command.ExecuteReader();
                 

                    while (dr.Read())
                    {

                        schild[derconter] = dr[8].ToString();
                        //// cut

Der Code funkt 1a, das ist nicht das Problem.

A) Was muss ich ändern, dass erst 311 dann 312 dann 313 ausgelesen wird?
Die einzelnen Zeilen werden durcheinander ausgelesen. Wenn ich die Zeile 311 ändere, dann wird 311 als letztes ausgelesen.

B) Das Problem hat nichts mit Problem A zutun. Wenn ich eine Spalte lösche, dann ist…

  schild[derconter] = dr[8].ToString();

z.B. Namename von wo anderst. Es verscheibt sich um eine Stelle. Wie kann ich gezielt die Spalte Namename auslesen

Möchtest Du eine Sortierung, dann sortiere. ORDER BY ist Dein Freund.

Hallo!

A) Wenn du etwas änderst wird WIMRE der geänderte Eintrag ans physikalische Ende der Tabelle geschrieben und der alte Eintrag gelöscht. Deswegen erscheint der geänderte Eintrag am Ende wenn man kein Order by verwendet.

B) ???

Gruß Uwe

Geänderte Einträge können auch in derselben Page bleiben, HOT Update. Und der alte Eintrag wird nicht gelöscht, sondern erst einmal nur xmax gesetzt. Später kommt Vacuum - aber das löscht auch nicht, sondern markiert es nur als ‘reuseable’. Gelöscht wird es bei einem Vacuum full - oder aber wiederverwendet.

B) meint er wohl, daß er auf die N-te Spalte zugreifen will. Keine gute Idee, wie er selber bemerkt hat. Je nach Programmiersprache kann man die Spalte auch mit dem Namen ansprechen.