Recupera Datareader usando gli oggetti

Ho lavorato sul recupero dei dati dal database SQL utilizzando Datareader e popolarlo in Datatable .. Ma, mi chiedo se c’è un modo per gestire i dati da datareader senza utilizzare datatable? Intendo dire che gestire i valori della tabella usando Oggetti dovrebbe essere più preferibile ..

Ma, non voglio usare LINQ qui da allora, userò l’object ADOMD per estrarre i dati dal database (Cubes) ..

Dai un’occhiata a dapper-dot-net . Non sono sicuro di come funzioni con ADOMD.NET, ma materializza ordinatamente i risultati delle query in oggetti dinamici.

Esegui semplicemente il ciclo degli oggetti e impostalo come valori di proprietà della tua class personalizzata. L’esempio seguente legge i dati dalla tabella Clienti e crea un elenco di oggetti Classe cliente. Supponendo di avere un cliente POCO con ID e nome come proprietà

List custList= new List(); string connString="yourConnectionStringHere"; using (var conn = new SqlConnection(connString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT ID,NAME From Customer"; using (var reader = cmd.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var cust= new Customer(); if (!reader.IsDBNull( reader.GetOrdinal("ID"))) cust.ID = reader.GetInt32(reader.GetOrdinal("ID")); if (!reader.IsDBNull( reader.GetOrdinal("Name"))) cust.Name = reader.GetString(reader.GetOrdinal("Name")); custList.Add(cust); } } } } } 

public List GetEmployee (string spname) {

  con.Open(); cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = spname; cmd.CommandType = CommandType.StoredProcedure; reader = cmd.ExecuteReader(); List lstemp = new List(); while (reader.Read()) { EmployeeDetails emp = new EmployeeDetails(); emp.EmployeeId =Convert.ToInt32( reader["EmployeeId"].ToString()); emp.FirstName = reader["FirstName"].ToString(); emp.LastName = reader["LastName"].ToString(); emp.DOB = Convert.ToDateTime(reader["DOB"].ToString()); emp.Gender = Convert.ToInt32(reader["Gender"].ToString()); emp.QName = reader["QName"].ToString(); emp.Dname = reader["DName"].ToString(); emp.Email = reader["Email"].ToString(); lstemp.Add(emp); } return lstemp; }