Мне нужно ввести некоторые данные, полученные с веб-сайта Hattrick (онлайн-футбольный менеджер), в базу данных, используя C #. Структура базы данных следующая:
MatchID (which is also primary key)
Rating1
Rating2
...
Rating16
Все поля TinyInt
.
Так как способ представления данных, если я введу в базу данных MatchID
, который уже присутствует, я на 100% уверен, что другие поля Rating x будут иметь то же значение, поэтому это исключение можно смело игнорировать, чтобы не беспокоить пользователя.
Чтобы обработать это исключение, я использовал следующий код:
string AddMatchCommand = "Insert into Games values (@Match, @Ratings1, @Ratings2, @Ratings3, @Ratings4, @Ratings5, @Ratings6, @Ratings7, @Ratings8, @Ratings9, @Ratings10, @Ratings11, @Ratings12, @Ratings13, @Ratings14, @Ratings15, @Ratings16)";
SqlConnection MyConn = new SqlConnection(CreateTableConnectionString);
SqlCommand command = new SqlCommand(AddMatchCommand, MyConn);
command.Parameters.AddWithValue("@Match", MatchIDToInsert.ToString(CultureInfo.InvariantCulture));
command.Parameters.AddWithValue("@Ratings1", RatingsToInsert[0].ToString(CultureInfo.InvariantCulture));
command.Parameters.AddWithValue("@Ratings2", RatingsToInsert[1].ToString(CultureInfo.InvariantCulture));
//...
command.Parameters.AddWithValue("@Ratings16", RatingsToInsert[15].ToString(CultureInfo.InvariantCulture));
MyConn.Open();
try
{
command.ExecuteNonQuery();
}
catch (SqlException S)
{
if (S.Number != 2627) //2627 is the ID for the exception I want to ignore
{
MessageBox.Show(S.Message);
}
}
MyConn.Close();
Код выше делает свое дело. Однако есть ли лучший способ справиться с этой ситуацией? Я почти уверен, что смогу найти одну или две ошибки, но не могу доказать это.