GameFramework.DataDML.LoadSingleTableUserInfo C# (CSharp) Method

LoadSingleTableUserInfo() private static method

private static LoadSingleTableUserInfo ( List primaryKeys ) : GeneralRecordData
primaryKeys List
return GameFrameworkData.GeneralRecordData
        private static GeneralRecordData LoadSingleTableUserInfo(List<string> primaryKeys)
        {
            GeneralRecordData ret = null;
            try {
              using (MySqlCommand cmd = new MySqlCommand()) {
                cmd.Connection = DBConn.MySqlConn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "LoadSingleTableUserInfo";
                if(primaryKeys.Count != 1)
                    throw new Exception("primary key number don't match !!!");
                MySqlParameter inputParam;
                inputParam = new MySqlParameter("@_Guid", MySqlDbType.UInt64);
                inputParam.Direction = ParameterDirection.Input;
                inputParam.Value = (ulong)Convert.ChangeType(primaryKeys[0],typeof(ulong));
                cmd.Parameters.Add(inputParam);
                using (DbDataReader reader = cmd.ExecuteReader()) {
                  if (reader.Read()) {
                    ret = new GeneralRecordData();
                    object val;
                    TableUserInfo msg = new TableUserInfo();
                    val = reader["Guid"];
                    msg.Guid = (ulong)val;
                    ret.PrimaryKeys.Add(val.ToString());
                    val = reader["AccountId"];
                    msg.AccountId = (string)val;
                    ret.ForeignKeys.Add(val.ToString());
                    val = reader["Nickname"];
                    msg.Nickname = (string)val;
                    val = reader["HeroId"];
                    msg.HeroId = (int)val;
                    val = reader["CreateTime"];
                    msg.CreateTime = (string)val;
                    val = reader["LastLogoutTime"];
                    msg.LastLogoutTime = (string)val;
                    val = reader["Level"];
                    msg.Level = (int)val;
                    val = reader["ExpPoints"];
                    msg.ExpPoints = (int)val;
                    val = reader["SceneId"];
                    msg.SceneId = (int)val;
                    val = reader["PositionX"];
                    msg.PositionX = (float)val;
                    val = reader["PositionZ"];
                    msg.PositionZ = (float)val;
                    val = reader["FaceDir"];
                    msg.FaceDir = (float)val;
                    val = reader["Money"];
                    msg.Money = (int)val;
                    val = reader["Gold"];
                    msg.Gold = (int)val;
                    val = reader["SummonerSkillId"];
                    msg.SummonerSkillId = (int)val;
                    val = reader["IntDatas"];
                    msg.IntDatas = (string)val;
                    val = reader["FloatDatas"];
                    msg.FloatDatas = (string)val;
                    val = reader["StringDatas"];
                    msg.StringDatas = (string)val;
                    ret.DataVersion = (int)reader["DataVersion"];
                    ret.Data = DbDataSerializer.Encode(msg);
                  }
                }
              }
            } catch (Exception ex) {
              DBConn.Close();
              throw ex;
            }
            return ret;
        }