SQLServer异步调用,批量复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient; namespace DataAccess
{ class Program
{
[DllImport("kernel32.dll", EntryPoint = "Beep")]
public static extern bool MyBeep(uint iFreq, uint iDuration); string strConnNorthwind = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\Coding\ContosoUniversity\DataAccess\bin\Debug\northwind.mdf;Integrated Security=True;async=true";
string strConnPubs = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\Coding\ContosoUniversity\DataAccess\bin\Debug\pubs.mdf;Integrated Security=True;async=true"; public void Bridge()
{
DataTable dtEmployees = new DataTable();
using (SqlConnection cnNorthwind = new SqlConnection(strConnNorthwind))
using (DbCommand cmd = new SqlCommand("select * from Employees --where EmployeeID=7",cnNorthwind))
{
cnNorthwind.Open();
using (DbDataReader dr = cmd.ExecuteReader())
{
dtEmployees.Load(dr);
}
}
using (DbDataReader dr = dtEmployees.CreateDataReader())
while (dr.Read())
{
Console.WriteLine(dr.GetString() + " " + dr.GetString());
}
} public void AsyncCall()
{
using (SqlConnection cnNorthwind = new SqlConnection(strConnNorthwind))
using (SqlConnection cnPubs = new SqlConnection(strConnPubs))
{
cnNorthwind.Open();
SqlCommand cmdEmp = new SqlCommand("select * from Employees", cnNorthwind);
IAsyncResult arEmp = cmdEmp.BeginExecuteReader();
cnPubs.Open();
SqlCommand cmdAuthors = new SqlCommand("select * from authors", cnPubs);
IAsyncResult arAuthors = cmdAuthors.BeginExecuteReader();
//here, you can work with the current thread while sql requsts are executed.
SqlDataReader drEmp = cmdEmp.EndExecuteReader(arEmp);
SqlDataReader drAuthors = cmdAuthors.EndExecuteReader(arAuthors);
while (drEmp.Read())
Console.WriteLine(drEmp.GetString() + " " + drEmp.GetString());
while (drAuthors.Read())
Console.WriteLine(drAuthors.GetString() + " " + drAuthors.GetString());
}
} public void BulkCopy()
{
using (SqlConnection cnEmp = new SqlConnection(strConnNorthwind))
{
SqlCommand cmdEmp = new SqlCommand("select * from Employees", cnEmp);
cnEmp.Open();
SqlDataReader drEmp = cmdEmp.ExecuteReader();
//bulk copy of all rows,need employees table prepared first!
using (SqlBulkCopy bc=new SqlBulkCopy(strConnPubs))
{
bc.DestinationTableName = "EMPLOYEES";
bc.WriteToServer(drEmp);
}
Console.WriteLine("Over");
}
}
static void Main(string[] args)
{
//MyBeep(500, 1000);
Program p = new Program();
p.Bridge();
p.AsyncCall();
p.BulkCopy();
Console.ReadKey();
}
}
}
SQLServer异步调用,批量复制的更多相关文章
- 数据库调优过程(一):SqlServer批量复制(bcp)[C#SqlBulkCopy]性能极低问题
背景 最近一段给xx做项目,这边最头疼的事情就是数据库入库瓶颈问题. 环境 服务器环境:虚拟机,分配32CPU,磁盘1.4T,4T,5T,6T几台服务器不等同(转速都是7200r),内存64G. 排查 ...
- Ajax 的异步调用和批量修改
AJAX的异步调用的分层 有四个jsp页面,在index.jsp页面上 要在dataDiv出显示调用的的数据回显到此处,可以让showStudent2.jsp页面的数据回调到此处,$("#d ...
- 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法(转载)
在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...
- WCF初探-11:WCF客户端异步调用服务
前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的.有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码 ...
- NET异步调用Webserver
之前,有个同事跑来问我一堆的什么多线程异步进行调用Sap的服务再突然把进程关闭,还说要设置一个循环判断调用的结果,搞得我听的一头雾水,但是我明显感觉到他的设计思路已经渐行渐远了...已经再偏远的山区中 ...
- JS常用方法总结,及jquery异步调用后台方法实例
//前台接收get参数值 function getQueryString(name) { var queryStrings = window.location.search.sp ...
- C# 委托的三种调用示例(同步调用 异步调用 异步回调)
首先,通过代码定义一个委托和下面三个示例将要调用的方法: 复制代码 代码如下: public delegate int AddHandler(int a,int b); public class ...
- 用Html5/CSS3做Winform,一步一步教你搭建CefSharp开发环境(附JavaScript异步调用C#例子,及全部源代码)上
本文为鸡毛巾原创,原文地址:http://www.cnblogs.com/jimaojin/p/7077131.html,转载请注明 CefSharp说白了就是Chromium浏览器的嵌入式核心,我们 ...
- .NET中的async和await关键字使用及Task异步调用实例
其实早在.NET 4.5的时候M$就在.NET中引入了async和await关键字(VB为Async和Await)来简化异步调用的编程模式.我也早就体验过了,现在写一篇日志来记录一下顺便凑日志数量(以 ...
随机推荐
- 转换成的jar文件接收后台的信息乱码cmd解决办法
运行——cmd—— java -jar -Dfile.encoding=utf-8 xxx.jar
- POJ 1014 Dividing
Dividing Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 66032 Accepted: 17182 Descriptio ...
- 统计Apache或Nginx访问日志里的独立IP访问数量的Shell
1.把IP数量直接输出显示: cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|wc -l 2.把IP数量输出到文本显示: cat acc ...
- Ruby 方法
Ruby 方法 Ruby 方法与其他编程语言中的函数类似.Ruby 方法用于捆绑一个或多个重复的语句到一个单元中. 方法名应以小写字母开头.如果您以大写字母作为方法名的开头,Ruby 可能会把它当作常 ...
- 使用SAXReader读取ftp服务器上的xml文件(原创)
根据项目需求,需要监测ftp服务器上的文件变化情况,并将新添加的文件读入项目系统(不需要下载). spring配置定时任务就不多说了,需要注意的一点就是,现在的项目很多都是通过maven构建的,分好多 ...
- 【转载】javascript与C#的语法区别
由于博主不允许的情况下不允许转载,我在这里只放上链接 http://blog.csdn.net/ranlianjie/article/details/2484139
- get和post的差异
主要差异: 1.get在地址栏上回显示用户信息,安全性低,post采用加密方式传输不显示,安全性高. 2.get相比post提交方式较快一点,因为post封装了一次消息再发送(加密). 3.get方式 ...
- fastdfs 安装配置
介绍文档 1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...
- Yii2.0中form->field如何获取主表的一个字段并且设置为只读
<?= $form->field($model, 'last_login_time')->textInput(['readonly' => 'true']) ?>
- 通过 SMB 直通优化文件服务器的性能
https://technet.microsoft.com/zh-cn/library/hh831487.aspx Windows Server 2012 内置新增功能,称为 SMB 直通,用来支持使 ...