MySqlConnection conn = null;
                MySqlCommand cmd = null;
                try
                {
                    conn = new MySqlConnection("*****");
                    conn.Open();
                    cmd = conn.CreateCommand();
                    string sql = string.Empty;                    sql = @"insert
                            into table_user(id,name)
                            values(@id,@name)";
                    cmd.CommandText = sql;
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(new MySqlParameter("id", 1));
                    cmd.Parameters.Add(new MySqlParameter("name", ""));
                    cmd.ExecuteNonQuery();
                }
                catch
                {
                }
                finally
                {
                    if (cmd != null)
                    {
                        cmd.Cancel();  //这里报错:Canceling an active query is only supported on MySQL 5.0.0 and above.
                        cmd.Dispose();
                    }
                    if (conn != null)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }

解决方案 »

  1.   

    取消了查询功能 只支持在MySQL 5.0.0及以上
      

  2.   

    你这个翻译看上去挺像 其实关键的地方翻译的不正确
    MySQL 5.0.0以上版本才支持取消活动的查询
      

  3.   

    MySQL 5.0.0以上版本才支持取消
    使用事务
      

  4.   

    话说就没必要在finally中取消查询,你难度都是测试用查询吗?每次执行后都要回滚事务啊(话说只有5.0.0以上才支持事务)
      

  5.   

    有个问题,command的Cancel方法是用来干什么的?大家说到了事务的回滚。
    我的目的其实是用完这个command以后释放掉它,所以先cancel再dispose。大家看看这个有什么问题。就算是5.0.0以上版本或者sqlserver,它们的command就算你cancel以后也不会回滚之前的操作的吧!?
      

  6.   


    command的Cancel方法 尝试取消 Command 的执行。如果你的目的是:用完这个command以后释放掉它。那样的话,cancel这句一定去掉它。cancel只取消command,与事务的回滚无关。不会回滚之前的操作。
      

  7.   

    就非事务而言,command如果执行cancel方法以后,前面对数据库做的操作将取消?比如前面往数据库里增加了一条数据,cancel以后这条数据会被删除?
      

  8.   


    command.cancel()  意思是stop ,已经完成的不再改变。没完成的不会再有结果。软件问题,要多试验,写一条语句就测出来了。也可以从网上查找理论依据。这个问题参考:
    Cancel query - what really happens ?