2016-06-14 45 views
0

錯誤錯誤:GetCharacters System.InvalidCastException:指定的轉換無效服務器

System.InvalidCastException: Specified cast is not valid.

線71

Tamer.Partner = GetDigimon((uint)(int)dr["partner"]); 

代碼示例下面

public static List<Character> GetCharacters(uint AcctId) 
{ 
    List<Character> chars = new List<Character>(); 
    try 
    { 
     using (MySqlCommand cmd = new MySqlCommand(
      "SELECT * FROM `chars` WHERE `accountId` = @id" 
      , Connect())) 
     { 
      cmd.Parameters.AddWithValue("@id", AcctId); 

      using(MySqlDataReader dr = cmd.ExecuteReader()) 
      { 
       if (dr.HasRows) 
       { 
        while (dr.Read()) 
        { 
         Character Tamer = new Character(); 
         Tamer.AccountId = AcctId; 
         Tamer.CharacterId = Convert.ToUInt32((int)dr["characterId"]); ; 
         Tamer.Model = (CharacterModel)(int)dr["charModel"]; 
         Tamer.Name = (string)dr["charName"]; 
         Tamer.Level = (int)dr["charLv"]; 
         Tamer.Location = new Helpers.Position((short)(int)dr["map"], (int)dr["x"], (int)dr["y"]); 

         Tamer.Partner = GetDigimon((uint)(int)dr["partner"]); 
         if (dr["mercenary1"] != DBNull.Value) 
         { 
          int mercId = (int)dr["mercenary1"]; 
          Digimon merc = GetDigimon((uint)mercId); 
          Tamer.DigimonList[1] = merc; 
         } 
         if (dr["mercenary2"] != DBNull.Value) 
         { 
          int mercId = (int)dr["mercenary2"]; 
          Digimon merc = GetDigimon((uint)mercId); 
          Tamer.DigimonList[2] = merc; 
         } 
+0

錯誤發生在第71行。 –

+0

謝謝Sateesh! –

+0

歡迎您!請將其標記爲答案,這將回答您的問題。 – DarkKnight

回答

0

不知道爲什麼你正在嘗試做這個轉換。但是,試試這個

Convert.ToUInt32(Convert.ToInt32(dr["partner"])) 
相關問題