Entwickler-Ecke
WinForms - Wert aus einem DataReader mit Typ in DataRow abspeichern
erfahrener Neuling - Mo 02.05.16 12:18
Titel: Wert aus einem DataReader mit Typ in DataRow abspeichern
Hallo,
wie aus
diesem Thread [
http://www.entwickler-ecke.de/viewtopic.php?t=115438url] hier schon hervor ging, habe ich einen DataReader, welcher aus einem command erzeugt wurde und Daten ausließt.
Wenn ich die Werte nach Typ abfrage, funktioniert das auch. Nur wenn ich danach die DataRow ausgebe, sind diese Typen dann nicht mehr erhalten:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| using (FbDataReader reader = command.ExecuteReader(CommandBehavior.Default)) { while (reader.Read()) { row = table.NewRow(); for (int i = 0;i < reader.FieldCount;i++) { if (reader.GetValue(i) is DateTime) row[i.ToString()] = reader.GetDateTime(i); else if (reader.GetValue(i) is double) row[i.ToString()] = reader.GetDouble(i); else row[i.ToString()] = reader.GetValue(i); } } |
Die table besteht aus reader.FieldCount-Anzahl-Spalten, die von 0 beginnend durchnummeriert sind (deswegen row[
i.ToString()).
Woran liegt es? Liegt es an den row-Eigenschaften oder an der Table oder woran???
Vielen Dank für eure Antworten
Ralf Jansen - Mo 02.05.16 12:53
Warum nimmst du einen FBDataReader um Daten in eine DataTable zu füllen (sieht für mich so aus als wäre table eine DataTable) und nicht einfach einen FbDataAdapter?
erfahrener Neuling - Mo 02.05.16 12:56
Das hatte ich am Anfang auch probiert. Allerdings hab ich keinen weg gefunden, einen DataAdapter mit einem command zu verknüpfen.
Ich brauche nämlich diesen command
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| FbCommand command = connection.CreateCommand(); command.CommandType = CommandType.StoredProcedure; command.CommandText = procedureName; if (parameters != null) for (int i=0; i<parameters.GetLength(0); i++) command.Parameters.AddWithValue(parameters[i,0],parameters[i,1]); |
erfahrener Neuling - Mo 02.05.16 12:58
Ok halt. Das geht ja doch, hatte scheinbar Tomaten auf den Augen :autsch:
erfahrener Neuling - Mo 02.05.16 13:11
EDIT: funzt doch alles
richtige Lösung:
C#-Quelltext
1: 2:
| FbDataAdapter adapter = new FbDataAdapter(command); adapter.Fill(table); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!