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)来简化异步调用的编程模式.我也早就体验过了,现在写一篇日志来记录一下顺便凑日志数量(以 ...
随机推荐
- appserver安装常见的问题
安装过程: 一般下载安装包直接按照步骤安装,不过一次安装好没问题的情况很少. 1. 下载安装包百度搜索appserv 或者到以下网址下载 http://www.appservnetwork ...
- jade转化为html
网址:http://www.html2jade.org/ 刚到一家新的公司 ,上一个前段PHP写的代码基本都是jade写的,看的一脸懵逼,第一次遇到jade代码,并且我一直用的是atom开发工具,安装 ...
- nodejs--模块
在客户端可以将所有的javascript代码分割成几个JS文件,然后在浏览器中将这些JS文件合并.但是在nodejs中是通过以模块为单位来划分所有功能的.每一个模块为一个JS文件,每一个模块中定义的全 ...
- ✡ leetcode 174. Dungeon Game 地牢游戏 --------- java
The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. ...
- java项目调用kettleJob和Trans
1.调用本地Job和Trans 较简单不用多说没有遇到任何问题,以下是代码: import org.pentaho.di.core.KettleEnvironment; import org.pent ...
- win10突然不能使用usb大容量存储设备(移动硬盘)的解决方法
昨天开始使用usb硬盘,发现一块无法识别,一块识别好了以后不能打开. 可能是之前一次系统更新有bug,但是一直也没有用移动硬盘,所以没有发现. 开始尝试各种方案,已经尝试过并且无效的有以下几个: 1, ...
- 推荐的Android ORM框架
1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...
- Android日常开发总结的技术经验60条 转
1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. 数据库表段字段常量和SQL逻辑分离,更清 ...
- Eclipse中Sever启动成功,但tomcat无法管理页面无法访问。
- centos 安装rmagick 2.13.4出错
因为安装redmine,缺少rmagick,使用bundle install安装依赖的gem,报错如下: 然后,网上查询一下,都是ubuntu系统下的解决方案. centos下正确的解决方法如下: y ...