首页 > 解决方案 > 检测是否在 C# 中插入了 MySQL 行

问题描述

我有一个 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 执行?

标签: c#mysqlsqldatabase

解决方案


推荐阅读