Laden...

Auslesen und Anzeige der Daten aus Datenbank entspricht nicht der Reihenfolge in der DB

Erstellt von ck82 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.148 Views
C
ck82 Themenstarter:in
34 Beiträge seit 2015
vor 7 Jahren
Auslesen und Anzeige der Daten aus Datenbank entspricht nicht der Reihenfolge in der DB

verwendetes Datenbanksystem: <Access>

Liebe DB-Profis,

ich hab so meine Probleme mit Dataset. Bisher hatte ich alle Anfragen an meine Access DB einzeln erstellt. Access ist für mich nur zum üben und weil ich keine SQL-Datenbank erstellen kann. Werde später meine Access DB in eine SQL konvertieren. Microsoft stellt da ein Prog. bereit mit dem es hoffentlich ganz gut geht.

Mein Prog. werde ich dann umstellen.

So nun zu meiner Frage.

Zunächst Frage ich alld Daten einer Tablle ab:

ds = Funktion.DBAbfrage("SELECT * FROM tabel");

So sieht die Abfrage in meiner Funktion aus.
Nun müsste ich alle Daten der Tabelle in meinem DataSet (ds) haben.


try {             
                // Eröffnen einer neuen DB Verbindung
                OleDbConnection connectionDB = new OleDbConnection();
                
                //Abfrage einrichten
                OleDbDataAdapter oledbAdapter;
                DataSet ds = new DataSet();

                //Verbinden mit der Datenbank
                connectionDB.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + DatenbankVzName + ";Persist Security Info=False;";
                connectionDB.Open();

                oledbAdapter = new OleDbDataAdapter(Abfragewert, connectionDB);
                oledbAdapter.Fill(ds);
                oledbAdapter.Dispose();
                connectionDB.Close();

                return ds;

            }

Jetzt möchte ich einen Wert aus meinem DataSet an eine Textbox übergeben:

tbt_frm08_P1_C1_001.Text = ds.Tables[0].Rows[0].ItemArray.GetValue(0).ToString();

Blöd ist nur das mein DataSet nicht identisch der Datenbank gefüllt wurde.

Siehe Bild: DB_Ausschnitt

Im Grunde würde ich davon ausgehen das DataSet (= Array) müsste nun wie folgt aussehen:

0 = 7
1 = 8
2 = 9
3 = 14
4 = 15
5 = 16

Aber nein - es scheint so gefüllt zu werden:

0 = 14
1 = 15
2 = 16
3 = 7
4 = 8
5 = 9

Ich verstehe leider nicht warum???

Mein Problem ist die Verwendung der Werte, bei dieser Verteilung.

Wer kann mir helfen?
Wo ist mein Denkfehler???

16.834 Beiträge seit 2008
vor 7 Jahren

Tu dir selbst einen Gefallen und vermeide auch bei der Argumentation Access.
Access hat absolut keine Berechtigung in einer .NET Welt mehr. Wenn Du lokal arbeiten willst, dann nimm lieber Sqlite.

Zudem ein paar Tipps:

  • schreibe Quellcode in Englisch
  • vermeide statische Klassen
  • schau Dir mal den Repository Pattern an.
3.825 Beiträge seit 2006
vor 7 Jahren

Hallo ck82,

Wenn Du eine bestimmte Reihenfolge willst dann muss Du die im SQL Kommando angeben.

ds = Funktion.DBAbfrage("SELECT * FROM tabel ORDER BY ID");

ID ist die Spalte nach der sortiert wird.

Eine Übertragung der Daten von Access nach SQL Server ist eine gute Idee !

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

C
ck82 Themenstarter:in
34 Beiträge seit 2015
vor 7 Jahren

Hallo Bernd,

danke für deine schnelle uns sehr hilfreiche Antwort!

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Danke und Grüße

ck