I have the following code and i want to loop through all the fields in the result of this query and populate the dictionary called field.
Given a datareader is this
GetSchemaTable will return a lot of information about the columns, including their name but also size, type, etc.
I presume you want the key of the dictionary to be the column name, and the value to be the row value. If so, this should work:
var dict = reader.GetSchemaTable().Rows.OfType().Select(
r => r["ColumnName"].ToString()
).ToDictionary(
cn => cn,
cn => reader[cn].ToString()
);
You could also use GetValues() to get the number of columns, and call GetName(int) for each.