Определите, были ли строки MySQL вставлены в C # - PullRequest
0 голосов
/ 26 июня 2018

У меня есть программа на C #, которая пытается вставить данные в базу данных MySQL.Данные могут уже находиться в базе данных, и в этом случае они просто перезаписывают их.Пример:

MySqlConection dbConnection = ...; // Setup connection
int numCustomersToUpdate = 3;

String query =
    "INSERT INTO customer_regions (customer_id, region_id)
    VALUES (1, 205), (2, 314), (3, 151) // 3 customers
    ON DUPLICATE KEY UPDATE region_id = VALUES(region_id)";

MySqlCommand cmd = new MySqlCommand(query, dbConnection);

int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected == numCustomersToUpdate)
{
    // Data either did not exist before and was inserted,
    // or already existed and overwritten
}
else
{
    // Error inserting data
}

Проблема в том, что если данные были перезаписаны, rowsAffected равно 0, что считается ошибкой.Как я могу считать это успешным выполнением SQL независимо от того, были ли данные вставлены или перезаписаны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...