Is there an easy way to convert all the columns of the current row of a SqlDataReader to a dictionary?
using (SqlDataReader opReader = command.ExecuteReader()) { // Convert the current row to a dictionary }
Thanks
You can use LINQ:
return Enumerable.Range(0, reader.FieldCount) .ToDictionary(reader.GetName, reader.GetValue);
Easier than this?:
// Need to read the row in, usually in a while ( opReader.Read ) {} loop... opReader.Read(); // Convert current row into a dictionary Dictionary<string, object> dict = new Dictionary<string, object>(); for( int lp = 0 ; lp < opReader.FieldCount ; lp++ ) { dict.Add(opReader.GetName(lp), opReader.GetValue(lp)); }
I'm still not sure why you would need this particular transformation from one type of collection to another.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With