Hallo Community,
ich habe ein Problem mit einem Tool für einen Kunden von uns, und hoffe Ihr könnt mir weiterhelfen. Dieses Tool erzeugt eine CSV-Datei anahnd einer gespeicherten Abfrage aus einer Access-DB.
Um das Tool so allgemeingültig wie möglich zu halten habe ich einen COUNT Befehl integriert um die Größe der später benötigten Arrays dynamisch anpassen zu können. Soweit so gut, nun kam aber das Problem auf, dass bei einer Abfrage mit nur einem Resultat (in Acces getestet) ich trotzdem einen Wert zurück bekomme der größer ist als er sein kann/darf!
In der Db gibt es eine Abfrage die Produkte mit ean usw. aus vielen anderen Abfragen korrekt holt und erzeugt. Wenn ich jetzt aber eine Testabfrage mache:
Quelltext
1:
| SELECT * FROM [NAME_DER_ABFRAGE] WHERE product_id='123'; |
bekomme ich genau ein Resultat (klar), allerdings im Tool, und das ist das Problem, erhalte ich einen Wert von 776 (was der korrekte Wert aus NAME_DER_ABFRAGE ist) wenn ich folgendes OleDbCommand nutze:
C#-Quelltext
1:
| ...count = new OleDbCommand("SELECT COUNT(*) AS cnt FROM [" + NAME_DER_TESTABFRAGE + "]", verb); |
. Ausgewertet wird die Abfrage über einen OleDbDataReader in einer while-Schleife:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| OleDbDataReader cnt = count.ExecuteReader(); ... while (cnt.Read()) { val = cnt["cnt"].ToString();#if DEBUG lbResult.Items.Add(val); #endif } cnt.Close(); |
Wenn ich die gleiche COUNT-Abfrage in Access mache bekomme ich das korrekte Resultat (1).. wo liegt also mein Fehler?
Danke für eure Hilfe...
greetz, me