c# 操作mysql 不存在则插入数据,存在侧更新数据
时间: 2025-01-14 20:20:00 浏览: 65
在 C# 中操作 MySQL 数据库时,为了实现 "如果数据不存在就插入,如果已存在则更新" 的功能,可以使用 ` MySqlCommand` 和 `DbCommand.ExecuteNonQuery()` 方法配合存储过程或者是 ` MySqlCommand` 的 `ExecuteNonQuery` 方法配合条件语句。这里提供一个基本的示例,假设你已经有了数据库连接 `SqlConnection`:
1. 使用存储过程(推荐做法,更安全且易于管理):
```csharp
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string storedProcName = "InsertOrUpdateData";
// 创建SqlCommand实例
using (SqlCommand command = new SqlCommand(storedProcName, connection))
{
// 参数化查询,设置命令文本
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@YourColumn", yourValue);
try
{
// 执行存储过程
int rowsAffected = command.ExecuteNonQuery();
if (rowsAffected == 1)
Console.WriteLine("Data inserted or updated.");
else
Console.WriteLine("Data already exists and no changes made.");
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
}
}
}
```
2. 直接使用 SQL 语句(不推荐,因为SQL注入风险较高):
```csharp
string sql = "INSERT INTO YourTable (YourColumn) VALUES (@YourColumn) ON DUPLICATE KEY UPDATE YourColumn=VALUES(YourColumn)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
// ...其余部分相同...
command.CommandText = sql;
command.ExecuteNonQuery();
// ...判断并打印结果...
}
```
记住在实际应用中,最好使用参数化查询防止SQL注入,并根据数据库的具体表结构调整SQL。
阅读全文
相关推荐




















