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 ...
随机推荐
- PHP运行模式
1.运行模式 关于PHP目前比较常见的五大运行模式: 1)CGI(通用网关接口 / Common Gateway Interface) 2)FastCGI(常驻型CGI / Long-Live CGI ...
- LoadRunner 参数和变量的区别(未完)
挺久没来更新了,坚持是件不容易的事呢,之后坚持每天总结下前一天的学习点 在LR中,参数是一种更高级的变量,他们能起到同样的效果,但同时也有几点不同 1. 定义方法不同 (这个还没看懂) 2. 调用语法 ...
- Linux第02天
Linux 第02天 1.Linux磁盘和文件系统 VFS————虚拟文件系统 df命令————查看已挂载的分区 df 分区名 du命令————查看文件夹大小 du 文件夹名 ln命令————符号链接 ...
- https
http://www.cnblogs.com/bugly/p/5075909.html# http://www.cnblogs.com/peijian708/archive/2011/05/07/20 ...
- maven ClassNotFoundException: org.springframework.web.context.ContextLoaderL
信息: Starting Servlet Engine: Apache Tomcat/6.0.32 2012-3-31 9:39:40 org.apache.catalina.core.Standar ...
- Android调用默认浏览器打开指定Url
业务员有需求要将一个wap站在手机上以App的形式打开,还不要嵌套WebView,只能以浏览器打开.查了点资料,就有了下面这货. package com.gzz.whyinzi; import and ...
- BZOJ3687 计算子集和的异或和
题不知道怎么不见了,bzoj上已经没了3687这题了 题意:给你一个n 然后输入n个数 求这n个数的所有子集的和的异或和 思路:用bitset记录某个数是否在子集和中出现,利用bitset对二进制位的 ...
- JSP 简介
160901 1. 一句话介绍什么是JSP? 和java相关的技术,可以开发出动态的,高性能的Web应用程序,的一门开发语言 2. 优点即特点,那么jsp的优点有哪些呢? JSP实现的We ...
- 第八周PSP
团队项目PSP 一:表格 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:40 11:40 35 60 70 分析与 ...
- 一个人java深入理解java logback配置
http://blog.csdn.net/initphp/article/category/1230072/2