这是我在c#
中的代码的一部分MySqlConnection connection = new MySqlConnection(MyConnectionString);
connection.Open();
cmd = connection.CreateCommand();
...
int xxxx;
cmd.CommandText = "UPDATE myTable SET ..... ";
xxxx = cmd.ExecuteNonQuery();
Debug.WriteLine(xxxx + " rows updated");
cmd.CommandText = "select id,... from myTable";
dr = cmd.ExecuteReader();
while (dr.Read())
...
第一个查询(更新)大约需要30秒才能执行。 我观察到的是,可能在query1更新表之前执行了第二个查询。
答案 0 :(得分:1)
ExecuteNonQuery()
方法是同步的,下一个语句在完成之前不会执行。这同样适用于ExecuteReader()
。
这两个查询不能在上面的代码中并行运行(至少从一个线程运行。如果上面的代码在多个线程上运行,则可能发生)。
还有相应的异步方法ExecuteNonQueryAsync()
和ExecuteReaderAsync()
,但它们在上面的代码中没有使用。