From: Guy Platt Date: October 6 2004 8:53am Subject: Better way to get all columns in the DataReader List-Archive: http://lists.mysql.com/dotnet/15 Message-Id: <4163B288.5030706@nordicadvice.se> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030200040400060401090705" --------------030200040400060401090705 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit There must a be a better way to get all the columns in a DataReader and map them to a class than the way I am doing it. Can anyone help me rewrite the following? Thanks Guy P.S. The code has been edited (including removing a check to see whether the Dr returned any rows). public class MemberDetail { public int MemberNrr; public string FirstName; public string LastName; public string Password; public string TelephoneNr; public string MobileNr; public string CancelDate; } public static MemberDetail GetMemberDetails(int memberNr) { MySqlConnection myConn; MySqlCommand myCmd = new MySqlCommand(); MySqlDataReader Dr = null; myConn = new MySqlConnection(ConfigurationSettings.AppSettings["MySqlConnectionString"]); myConn.Open(); myCmd.Connection = myConn; myCmd.CommandText = "SELECT * FROM ppmr_members WHERE ppmr_members.MembersNumber = " + memberid ; Dr = myCmd.ExecuteReader(CommandBehavior.CloseConnection); Dr.Read(); MemberDetail myMemberDetail = new MemberDetail(); myMemberDetail.MembersNumber = Convert.ToInt32(Dr[Dr.GetOrdinal("MemberNr")]); myMemberDetail.FirstName = Dr[Dr.GetOrdinal("FirstName")].ToString(); myMemberDetail.LastName = Dr[Dr.GetOrdinal("LastName")].ToString(); myMemberDetail.TelephoneNr = Dr[Dr.GetOrdinal("Telephone")].ToString(); myMemberDetail.MobileNr = Dr[Dr.GetOrdinal("Mobile")].ToString(); if (Dr[Dr.GetOrdinal("CancelDate")] != DBNull.Value) myMemberDetails.CancelDate = Dr[Dr.GetOrdinal("CancelDate")].ToString(); else myMemberDetail.CancelDate = String.Empty; Dr.Close(); myConn.Close(); return myMemberDetail; } --------------030200040400060401090705--