DataRow aus DataReader holen

01/08/2008 - 15:00 von Christian Havel | Report spam
Hi,

ich möchte bei der Iteration über einen DataReader die gesamte DataRow als
Objekt haben. Es reicht mir nicht aus, nur auf die einzelnen Felder
zuzugreifen.

Wie mache ich dies?
Christian
 

Lesen sie die antworten

#1 Frank Dzaebel
01/08/2008 - 15:38 | Warnen spam
Hallo Christian,

ich möchte bei der Iteration über einen DataReader die gesamte DataRow als
Objekt haben. Es reicht mir nicht aus, nur auf die einzelnen Felder
zuzugreifen. Wie mache ich dies?



Verschiedene Möglichkeiten, obwohl das
ja mit dem DataAdapter.Fill hier ggf. einfacher ist.
Es hàngt davon ab - je nachdem, ob z.B. die
DataTable schon im Schema bekannt ist, kann einiges
wegfallen ...


private void Form1_Load(object sender, EventArgs e)
{
string connectionString Properties.Settings.Default.FrankConnectionString;
DataTable dataTable = new DataTable();
string queryString = "SELECT * FROM Person";

using (SqlConnection connection = new
SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
foreach (DataRow dr in reader.GetSchemaTable().Rows)
dataTable.Columns.Add((string)dr["ColumnName"], dr["DataType"]
as Type);

while (reader.Read())
{
object[] values = new object[reader.FieldCount];
reader.GetValues(values);
dataTable.LoadDataRow(values, false);
}
reader.Close();
}
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen