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();
}
}
解决方案 »
- 数据库有一个表,窗体上有2个数据库有一个表,窗体上有2个DataGridView控件都绑定在这个表上。。控件都绑定在这个表上。。
- 求助联表查询,实现两表行数相加的问题
- [WPF]如何將DrawingImage保存為圖片?
- 一个简单的Winform问题!疑惑中......!
- 只允许程序运行一个实例.如果已运行.并调用此实例中的某公共方法??
- 初次用c#读写.txt文件,不太会写,请大家帮忙,谢谢了。在线等
- winForm菜单阴影高度不足,请看图!
- 如何获取ControlTemplate中的控件?
- 如何在数据库中找得自己想要的数据?急急急!
- 急急急!安装VS.Net到快结束时报读文件出错!
- ado 没有这样的功能吗??
- C#中三层架构反射问题
MySQL 5.0.0以上版本才支持取消活动的查询
使用事务
我的目的其实是用完这个command以后释放掉它,所以先cancel再dispose。大家看看这个有什么问题。就算是5.0.0以上版本或者sqlserver,它们的command就算你cancel以后也不会回滚之前的操作的吧!?
command的Cancel方法 尝试取消 Command 的执行。如果你的目的是:用完这个command以后释放掉它。那样的话,cancel这句一定去掉它。cancel只取消command,与事务的回滚无关。不会回滚之前的操作。
command.cancel() 意思是stop ,已经完成的不再改变。没完成的不会再有结果。软件问题,要多试验,写一条语句就测出来了。也可以从网上查找理论依据。这个问题参考:
Cancel query - what really happens ?