c# DB command throwing NullReferenceException on line ** DbDataReader reader = command.ExecuteReader();**

23 Views Asked by At

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(); }
}
0

There are 0 best solutions below