sql异步执行
/// <summary>
/// 按钮事件 异步执行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
string strSql = "SELECT c1 ,c2 FROM T1;" +
"WAITFOR DELAY '0:0:3';";
AsyncExecuteNonQuery(strSql, CallbackAsyncExecuteNonQuery);
} // <summary>
/// 异步执行SQL。
/// </summary>
/// <param name="sqlText">要执行的SQLText</param>
/// <param name="callBack">回执行监控事件</param>
public static void AsyncExecuteNonQuery(string sqlText, AsyncCallback callBack)
{
//关闭数据库连接要在callback中关闭,因为是异步操作
SqlConnection connection = null;
try
{
connection = new SqlConnection();
connection.ConnectionString = "Data Source=192.168.1.15;Initial Catalog=TestDB;user id=sa;password=123;Max Pool Size=200;Min Pool Size=5;Pooling=true;Connection Timeout=50;Asynchronous Processing=true";
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlText;
connection.Open();
cmd.BeginExecuteNonQuery(callBack, cmd); //开始执行SQL语句
}
catch (Exception ex)
{
if (connection != null)
{
connection.Close();
}
}
}
/// <summary>
/// 执行异步SQL 回调方法
/// </summary>
/// <param name="callBack"></param>
public static void CallbackAsyncExecuteNonQuery(IAsyncResult callBack)
{
SqlCommand cmm = null;
try
{
cmm = (SqlCommand)callBack.AsyncState;
if (cmm == null)
{
return;
}
cmm.EndExecuteNonQuery(callBack); //执行完毕
}
catch (Exception ex)
{
if (cmm != null)
{
//异步执行SQL异常
cmm.Dispose();
}
else
{
//异步执行SQL异常
}
}
finally
{
if (cmm != null && cmm.Connection != null && cmm.Connection.State != ConnectionState.Closed)
{
cmm.Dispose();
cmm.Connection.Close();
}
}
}
sql异步执行的更多相关文章
- Delphi中ADO异步执行方式
当ADO开始处理数据后,应用程序必须等到ADO处理完毕之后才可以继续执行.但是除了同步执行方式之外,ADO也提供了异步执行的方式,允许当ADO处理时,应用程序仍然能够先继续执行.而当ADO处理数据完毕 ...
- 获取node异步执行结果的方式
拿数据库操作举例: var connection = mysql.createConnection(); connection.query(sql,function(err,rows){xxx} ); ...
- Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)
系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...
- ORACLE从共享池删除指定SQL的执行计划
Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...
- SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率
为什么我也要说SQL Server的并行: 这几天园子里写关于SQL Server并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识. 我想说的是:尽管并行操作可能(并不是一定)存在这样或者 ...
- MyBatis源码分析-SQL语句执行的完整流程
MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简 ...
- SQL Server 执行计划缓存
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/内存池/缓冲区 概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之 ...
- SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变
前提 本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的. 利用不同字段 ...
- ORACLE查看SQL的执行次数/频率
在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致.如果执行频繁的S ...
随机推荐
- SQL注入处理
/// <summary> /// SQL注入处理 /// </summary> /// <param name="rowFilter">< ...
- 日志分析_使用shell完整日志分析案例
一.需求分析 1. 日志文件每天生成一份(需要将日志文件定时上传至hdfs) 2. 分析日志文件中包含的字段:访问IP,访问时间,访问URL,访问状态,访问流量 3. 现在有"昨日" ...
- 第 5 章 基础 DOM 和 CSS 操作
在常规的 DOM 元素中,我们可以使用 html()和 text()方法获取内部的数据.html()方法 可以获取或设置 html 内容,text()可以获取或设置文本内容. $('#box').ht ...
- Javascript初学篇章_3(注释/if/switch)
五.javascript的注释 // 单行注释 /* …*/ 多行注释 注:多行注释不能互相嵌套 六.程序流程控制 一.条件语句 if 语法: if(condition) statements1 el ...
- Git fetch和git pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log - ...
- Canvas 实现七彩喷泉
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- linux常用命令(一)
1.linux文件命名规则 1.除了/之外,所有字符都是可以用的. 2.有些字符最好别用,如空格,制表符,退格,@#&-,命令行操作时候可能会出现混淆. 3.避免使用.作为文件开头,linux ...
- Unity学习疑问记录之将图切割保存
http://blog.csdn.net/poem_of_sunshine/article/details/43036553
- 【emWin】例程二:显示“hello,world”
实验指导书及代码包下载: http://pan.baidu.com/s/1c1Csx48
- SVN中trunk、branches、tag的使用
我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说明SVN里的trunk,branched,tags这个三个文件目录的用法 ...