c#里的OdbcCommand.cancel方法的作用是什么阿

[复制链接]
查看11 | 回复2 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
我查了MSDN里面是这样描述的,“如果没有要取消的内容,则什么也不会发生。但是,如果有命令正在执行,而取消尝试失败,则不会生成异常。”
MSDN的示例是这样的,
public void CreateMyOdbcCommand(string mySelectQuery, string myConnectionString)
{
OdbcConnection myConnection = new OdbcConnection(myConnectionString);
OdbcCommand myCommand = new OdbcCommand(mySelectQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteReader();
myCommand.Cancel();
}

我不明白的是,这个cancel方法取消究竟是什么呢,如果这个命令是一个对数据库有修改的命令如删除命令,那么在执行ExecuteReader()以后再执行cancel方法难道就恢复了删除的数据吗?可是我试验的结果却是数据被删除了,也米有提示异常。
那么,这个cancel命令究竟是什么作用阿?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
基本上没见谁用过这个方法,估计是IDbCommand接口的设计者认为提供一个取消Command执行的函数可能会很有用。
矛盾是:大多数情况DbCommand的执行是同步的,也就是说,命令在执行完成才会返回,而返回后再Cancel已经来不及了!除非DbCommand的执行是异步的,而MSDN又说对于异步执行的DbCommand无法Cancel!
真是可笑


回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
这样子阿,我就觉得奇怪嘛怎么都没有人用。
谢谢2楼的:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行