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. find和grep的区别

    find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配. grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正侧表达式匹配 正侧表达式是包含匹配.

  2. 关于redis扩展安装及使用

    11月23日,预留 http://blog.sina.com.cn/s/blog_68431a3b0102v6dz.html http://blog.csdn.net/rachel_luo/artic ...

  3. Tomcat编码配置解疑

    环境:tomcat6.0.23 jdk 1.6 相关参考: http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html http://wiki.ap ...

  4. Codeforces Round #171 (Div. 2)

    A. Point on Spiral 由于坐标\(.|x|.|y| \le 100\),所以可直接bfs计算. 若数据较大,需要找规律. B. Books 维护窗口\([l,r]\),使\(\sum_ ...

  5. UML类图分析

    继承: 实现: 关联: 依赖: 组合: 聚合:

  6. makefile编写要点

    1.wildcard : 扩展通配符 2.notdir : 去除路径 3.patsubst :替换通配符 格式:$(patsubst <pattern>,<replacement&g ...

  7. linux KERNEL 问题

    http://stackoverflow.com/questions/9305992/linux-threads-and-process 深入 Linux 的进程优先级(vruntime) https ...

  8. 路由 - ASP.NET MVC 4 系列

           软件开发人员常常对一些细小的细节问题倍加关注,由其在考虑源代码的质量和结构时更是如此.因此,当遇到大部分使用 ASP.NET 技术构建的站点,使用如下的 URL 地址时,可能会有些奇怪: ...

  9. Centos 6.5安装oracle 11g

    (添加host)一.Centos 6.5 安装图形界面 gnome # yum groupinstall "Desktop" # yum groupinstall "X ...

  10. Visual Studio Team System 2008 Team Suite(90 天试用版)

    安装完成后,在“控制面板”中启动“添加删除程序”,选中Vs2008,点击“更改.删除”,输入序列号:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T