c# - 检测是否在 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 执行?
解决方案
推荐阅读
- macos - 使用 Apple 的 Catalyst 转换为 Mac 时的问题
- php - laravel 选中复选框时非法运算符和值组合
- gradle - assembleRelease.dependsOn 测试所有项目
- python - 在后缀转换中实现错误(python)
- ios - 快速网络和响应序列化
- python - 将数字添加到python列表中的字符串
- c# - 在外部用户控件之间切换
- selenium - Selenium Python,从节点和所有子节点中提取文本
- ruby-on-rails - Sidekiq:“发生异常:无法分配线程”
- python-3.x - Python - AutoComplete in an Editable Gtk.TreeView Cell