private static List<GeneralRecordData> LoadMultiTableMemberInfo(List<string> foreignKeys)
{
List<GeneralRecordData> ret = new List<GeneralRecordData>();
try {
using (MySqlCommand cmd = new MySqlCommand()) {
cmd.Connection = DBConn.MySqlConn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "LoadMultiTableMemberInfo";
if(foreignKeys.Count != 1)
throw new Exception("foreign key number don't match !!!");
MySqlParameter inputParam;
inputParam = new MySqlParameter("@_UserGuid", MySqlDbType.UInt64);
inputParam.Direction = ParameterDirection.Input;
inputParam.Value = (ulong)Convert.ChangeType(foreignKeys[0],typeof(ulong));
cmd.Parameters.Add(inputParam);
using (DbDataReader reader = cmd.ExecuteReader()) {
while (reader.Read()) {
GeneralRecordData record = new GeneralRecordData();
object val;
TableMemberInfo msg = new TableMemberInfo();
val = reader["MemberGuid"];
msg.MemberGuid = (ulong)val;
record.PrimaryKeys.Add(val.ToString());
val = reader["UserGuid"];
msg.UserGuid = (ulong)val;
record.ForeignKeys.Add(val.ToString());
val = reader["HeroId"];
msg.HeroId = (int)val;
val = reader["Level"];
msg.Level = (int)val;
record.DataVersion = (int)reader["DataVersion"];
record.Data = DbDataSerializer.Encode(msg);
ret.Add(record);
}
}
}
} catch (Exception ex) {
DBConn.Close();
throw ex;
}
return ret;
}