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异步调用,批量复制的更多相关文章

  1. 数据库调优过程(一):SqlServer批量复制(bcp)[C#SqlBulkCopy]性能极低问题

    背景 最近一段给xx做项目,这边最头疼的事情就是数据库入库瓶颈问题. 环境 服务器环境:虚拟机,分配32CPU,磁盘1.4T,4T,5T,6T几台服务器不等同(转速都是7200r),内存64G. 排查 ...

  2. Ajax 的异步调用和批量修改

    AJAX的异步调用的分层 有四个jsp页面,在index.jsp页面上 要在dataDiv出显示调用的的数据回显到此处,可以让showStudent2.jsp页面的数据回调到此处,$("#d ...

  3. 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法(转载)

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...

  4. WCF初探-11:WCF客户端异步调用服务

    前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的.有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码 ...

  5. NET异步调用Webserver

    之前,有个同事跑来问我一堆的什么多线程异步进行调用Sap的服务再突然把进程关闭,还说要设置一个循环判断调用的结果,搞得我听的一头雾水,但是我明显感觉到他的设计思路已经渐行渐远了...已经再偏远的山区中 ...

  6. JS常用方法总结,及jquery异步调用后台方法实例

    //前台接收get参数值 function getQueryString(name) {            var queryStrings = window.location.search.sp ...

  7. C# 委托的三种调用示例(同步调用 异步调用 异步回调)

    首先,通过代码定义一个委托和下面三个示例将要调用的方法: 复制代码 代码如下: public delegate int AddHandler(int a,int b);    public class ...

  8. 用Html5/CSS3做Winform,一步一步教你搭建CefSharp开发环境(附JavaScript异步调用C#例子,及全部源代码)上

    本文为鸡毛巾原创,原文地址:http://www.cnblogs.com/jimaojin/p/7077131.html,转载请注明 CefSharp说白了就是Chromium浏览器的嵌入式核心,我们 ...

  9. .NET中的async和await关键字使用及Task异步调用实例

    其实早在.NET 4.5的时候M$就在.NET中引入了async和await关键字(VB为Async和Await)来简化异步调用的编程模式.我也早就体验过了,现在写一篇日志来记录一下顺便凑日志数量(以 ...

随机推荐

  1. 在生产环境记录http请求参数

    StringBuilder strParam = new StringBuilder(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ...

  2. AJAX原理及应用

    Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XMLHttpRequest对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现.也就是javascript可 ...

  3. 16个常用IO流

    在包java.io.*:下 有以下16个常用的io流类: (Stream结尾的是字节流,是万能流,通常的视频,声音,图片等2进制文件, Reader/Writer结尾的是字符流,字符流适合读取纯文本文 ...

  4. linux下jdk的安装(tar包)

    1.查看jdk安装路径 [root@localhost ~]# whereis javajava: /usr/bin/java /etc/java /usr/lib/java /usr/share/j ...

  5. browser shell

    我一直坚信,做项目需要通过文档来总结.一来可以梳理自己的项目和思路,二来可以备忘,三则可以为有同样需求的朋友提供一些参考.如果一直不进行总结,真的很可能是写了多年的代码,却只有一年的经验.当学习一项新 ...

  6. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  7. java-final关键字

    一.final理解 编程语言中关键字,final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的.在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个 ...

  8. linux 维护常见场景小命令 (未完待续)

    1.安装KDE桌面 [root@rhel06 ~]# yum -y groupinstall "X Windows System" "KDE Desktop" ...

  9. C++中vector的remove用法

      我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法.误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的. 这是rem ...

  10. oracle 12c 创建PDB用户即Local User (PDB与CDB)

    Oracle 12C用户创建与表空间分配  数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace ...