MySQL 使用ExecuteNonQuery方法
在MySQL中,我们使用ExecuteNonQuery方法来执行一些不需要返回结果集的SQL语句,例如INSERT、UPDATE、DELETE等。但有时候我们需要知道这些操作执行后影响的行数,这时我们可以使用Get affected rows方法来获取。
阅读更多:MySQL 教程
Get affected rows方法
Get affected rows方法用于获取上一次ExecuteNonQuery方法的影响行数,代码示例:
using MySql.Data.MySqlClient;
MySqlConnection conn = new MySqlConnection("your connection string");
conn.Open();
MySqlCommand cmd = new MySqlCommand("your SQL statement", conn);
int affectedRows = cmd.ExecuteNonQuery();
Console.WriteLine($"The number of affected rows: {affectedRows}");
conn.Close();
上面的代码中,我们通过MySqlConnection创建一个MySQL连接,通过MySqlCommand执行一个SQL语句并返回受影响的行数,最后关闭连接。你也可以使用SqlParameter来指定参数,防止SQL注入攻击。
示例
下面是一个实际的例子:我们有一个表test,它包含两个字段:id和name。
| id | name |
|---|---|
| 1 | John |
| 2 | Mary |
| 3 | Tom |
我们要执行一条删除操作,删除所有name为John的记录,并打印出受影响的行数。代码如下:
using MySql.Data.MySqlClient;
MySqlConnection conn = new MySqlConnection("your connection string");
conn.Open();
// 删除name为John的记录
MySqlCommand cmd = new MySqlCommand("DELETE FROM test WHERE name = 'John'", conn);
int affectedRows = cmd.ExecuteNonQuery();
Console.WriteLine($"The number of affected rows: {affectedRows}");
conn.Close();
运行结果为:
The number of affected rows: 1
我们可以看到,只有一条记录被删除了。如果我们把where条件改为name = ‘Smith’,运行结果为:
The number of affected rows: 0
因为没有记录被删除,受影响的行数为0。
总结
Get affected rows方法是MySQL中获取受影响行数的方法,适用于ExecuteNonQuery方法。通过实例代码我们也可以看到,在实际开发中,我们能够更清晰地知道我们写的SQL语句对数据库操作了多少行,进而判断我们的逻辑是否正确。
极客教程