OleDbConnection - Bestimmten Datensatz auslesen

Hallo,

ich habe leider ein weiteres SQL i.V.m. MS Access Problem.
Und zwar mittels des SQL Count Befehls, die Anzahl der Datensätze einer Relation ermitteln. Bspw. so …

„SELECT Count(*) FROM Personen“

Nun möchte ich im Anschluss darauf jeden einzelnen Datensatz einzeln abfragen. Bspw. mittels einer FOR-Schleife. Jedoch weiss ich nicht wie man einen Datensatz anhand seiner Datensatznummer abfragen kann. Also ich möchte bspw. den Datensatz mit der Nummer 1 von der Relation Personen haben. Der Befehl müsste dann so in etwa aussehen …

Pseudocode:
„SELECT Row 1 FROM Personen“

Aber wie gesagt, den genauen SQL Befehl hierzu kenne ich leider nicht.
Kann mit hier vielleicht jemand weiterhelfen?

Gruß
Christoph

Nun möchte ich im Anschluss darauf jeden einzelnen Datensatz
einzeln abfragen. Bspw. mittels einer FOR-Schleife. Jedoch
weiss ich nicht wie man einen Datensatz anhand seiner
Datensatznummer abfragen kann. Also ich möchte bspw. den
Datensatz mit der Nummer 1 von der Relation Personen haben.
Der Befehl müsste dann so in etwa aussehen …

Soweit ich weiss kann man per SQL kein „SELECT gibMirZeileX FROM“ machen. Dafür gibt’s die Indizes und Primary Keys. Wenn alle Datensätze behandelt werden sollen ist es das Einfachste, über ein DataSet zu gehen. Im DataSet gib’t die Tables und dort gibt’s die Rows und dort wieder die Columns. Jeweils inidiziert lässt sich so jeder Wert auslesen und sogar ändern. Das „SELECT COUNT(*) FROM“ lässt sich dann auch sparen, denn unter Tables gibt’s ein Count.

Sebo

Moin Christoph.

Der Ansatz is schon nicht schlecht, du kannst ja die Befehle von SQL auch per Ole verwenden. Der Fehlöer ist nun, dass du nicht nach der Zeile aussuchen solltest, denn das ist immer Frontendabhängig, und auf maschinenseite nicht ganz einfach. Ich würde in der Tabelle die Datensätze durchnummerieren. Dann kannst du anhand dieser Nummer die Datensätze auslesen und wiedergeben.

SQL-Befehl: SELECT (*) FROM Table1 WHERE Index = i

i ist hier deine Schleifenvariable.
Index ist eine Int-Spalte in deiner Datanbank

Wenn ich dir einen Tipp geben darf, schau dir ma ein DataGrid oder in .NET2.0 DataGridView an, dann bekommst gleich die ganze Tabelle ausgelesen.

Du musst auch aufpassen, dass die Type sauber sind, sonst hagels Exceptions.

Also denn, viel Spaß beim ausprobieren.
Stefan