实体框架的输入字符串格式不正确

时间:2015-04-21 15:57:01

标签: c# entity-framework

我遇到以下异常:

  

“输入字符串的格式不正确。”

我正在使用逗号分隔的Json响应并将其存储在数据库中。我不确定是什么问题。 这是代码:

   foreach (string s in skaters)
            {
                skaterData = s.Split(stringSeparator2, StringSplitOptions.None);
                Console.WriteLine(skaterData[0] + " " + skaterData[1] + " " + skaterData[2] + " " + skaterData[3] + " " + skaterData[4] + " " + skaterData[5] + 
                    " " + skaterData[6] + " " + skaterData[7] + " " + skaterData[8] + " " + skaterData[9] + " " + skaterData[10] + " " + skaterData[11] + " " + skaterData[12]
                    + " " + skaterData[13] + " " + skaterData[14] + " " + skaterData[15]);
                try
                {
                    using (var _temp_Player = new FetcherEntities())
                    {
                        //int validPlayer;
                        //int validTeam;
                        //Skater_Season existingPlayer = _temp_Player.Skater_Season.FirstOrDefault(x => x.player_id == Convert.ToInt32(skaterData[1]) && x.team_id = Convert.ToInt32(skaterData[2]));

                       // if (existingPlayer != null)
                       // {
                         // Console.WriteLine("Existing player: " + existingPlayer.NAME);
                       // }
                       // else
                       // {
                        _temp_Player.Skater_Season.Add(new Skater_Season
                        {
                            player_id = Int32.Parse(skaterData[0]), //stuck here
                            team_id = Int32.Parse(team),
                            season_id = season,
                            Number = Int32.Parse(skaterData[1]),
                            POS = skaterData[2],
                            NAME = skaterData[3],
                            GP = Int32.Parse(skaterData[4]),
                            G = Int32.Parse(skaterData[5]),
                            A = Int32.Parse(skaterData[6]),
                            P = Int32.Parse(skaterData[7]),
                            plusminus = Int32.Parse(skaterData[8]),
                            PIM = Int32.Parse(skaterData[9]),
                            S = Int32.Parse(skaterData[10]),
                            TOIG = skaterData[11],
                            PP = Int32.Parse(skaterData[12]),
                            SH = Int32.Parse(skaterData[13]),
                            GWG = Int32.Parse(skaterData[14]),
                            OT = Int32.Parse(skaterData[15])
                        });
                        try
                        {
                            _temp_Player.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Exception: " + e);

                        }
                    }
                }
                catch (DbEntityValidationException forwardDB)
                {
                    foreach (DbEntityValidationResult entityError in forwardDB.EntityValidationErrors)
                    {
                        foreach (DbValidationError error in entityError.ValidationErrors)
                        {
                            Console.WriteLine("Error Name: {0} : Message: {1}", error.PropertyName, error.ErrorMessage);
                            return false;
                        }
                    }
                }
            }

另外,我附上了一些数据外观的截图。

unparsed data

parsed data

1 个答案:

答案 0 :(得分:0)

很难确切地告诉您错误的位置,但是接收到无法解析的数据的Int32.Parse方法之一抛出了该消息。

最佳解决方案是使用TryParse,以便在出现问题时优雅地继续使用。