In my given c# DB command throwing NullReferenceException on line ** DbDataReader reader = command.ExecuteReader();** please review my code and offer me solution
public List<Dictionary<string, dynamic>> Execute(string queryString, Dictionary<string, dynamic> binds)
{
Con = Transaction is not null ? Con : GetDbConnection(ConnectionString);
DbCommand command = GetDbCommand(queryString, Con);
foreach (var kv in binds)
command.Parameters.Add(GetDbParameter(kv.Key, kv.Value));
try
{
if (Transaction is null && Con.State != ConnectionState.Open)
Con.Open();
command.Transaction = Transaction;
DbDataReader reader = command.ExecuteReader();
bool doneOnce = false;
List<string> fieldNames = new List<string>();
List<Dictionary<string, dynamic>> rows = new List<Dictionary<string, dynamic>>();
while (reader.Read())
{
Dictionary<string, dynamic> r = new Dictionary<string, dynamic>();
for (int i = 0; i < reader.FieldCount; i++)
{
if (!doneOnce) fieldNames.Add(reader.GetName(i));
r.Add(fieldNames[i], reader[i]);
}
doneOnce = true;
rows.Add(r);
}
reader.Close();
return rows;
}
catch (Exception ex)
{
Rollback();
Console.WriteLine(ex);
throw new Exception(ex.Message);
}
finally { Close(); }
}