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;
}