惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 许明会

异步编程,采用WorkgroupWorker,async和await关键字 OCR图像识别技术-Asprise OCR 关于委托,事件和类的设计准则 JavaScript能干什么? C#泛型代理、泛型接口、泛型类型、泛型方法 Delegate, Method as Parameter. DES对称性加密 利用委托实现异步调用 通过Windows组策略限制证书组织流氓软件的安装运行 枚举\位域\结构综合实验 - 许明会 - 博客园 public static void Invoke (Action action) C#编写WIN32系统托盘程序 C#的互操作性:缓冲区、结构、指针 Python体验(10)-图形界面之计算器 Python体验(09)-图形界面之Pannel和Sizer Python体验(08)-图形界面之工具栏和状态栏 Python体验(07)-图形界面之菜单 C#利用WIN32实现按键注册 Javascript猜数字游戏
SQLServer异步调用,批量复制
许明会 · 2016-03-24 · via 博客园 - 许明会
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(2) + " " + dr.GetString(1));
                }
        }

        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(2) + " " + drEmp.GetString(1));
                while (drAuthors.Read())
                    Console.WriteLine(drAuthors.GetString(2) + " " + drAuthors.GetString(1));
            }
        }

        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();
        }
    }
}