在reader循环中更新mysql时遇到麻烦
本文关键字:遇到 麻烦 mysql 更新 reader 循环 | 更新日期: 2023-09-27 18:17:56
我正在遍历这些mysql行并处理数据。但是,在处理的一部分,我也想更新到相同的mysql表。
这对我不起作用。
command.CommandText = "UPDATE outbox SET `faxpro` = 'DONE' WHERE `id` = '" + id + "'";
MySqlDataReader result = command.ExecuteReader();
代码 string connString = "Server=localhost;Port=3306;Database=communications;Uid=myuser;password=mypass;";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT * FROM outbox WHERE `faxstat` = 'Y' AND `fax` <> '' AND `faxpro` = 'PENDING'";
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
MySqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine(reader["account"].ToString());
SendFax(reader["filepath"].ToString(), reader["filepath"].ToString(), reader["id"].ToString(), reader["fax"].ToString());
string id = reader["id"].ToString();
command.CommandText = "UPDATE outbox SET `faxpro` = 'DONE' WHERE `id` = '" + id + "'";
MySqlDataReader result = command.ExecuteReader();
}
}
我认为最后一个命令。executereader()试图打开更多的阅读器,但这是不可能与一个连接。先关闭先打开reader,再修改该表;或者尝试使用command.ExecuteNonQuery()方法