Demo bulkcopy với ADO.NET


Trong phần này tôi demo khả năng sao chép nhanh dữ liệu hàng loạt với ADO.NET

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Security.Principal;

namespace BulkCopy
{
    public partial class Copy : Form
    {
        SqlConnection conn;
        SqlConnection DesConn;
        SqlBulkCopy bulk;
        public Copy()
        {
            InitializeComponent();
            conn = new SqlConnection("Server=.;database=Northwind;uid=sa;pwd=sa;");
            DesConn = new SqlConnection("Server=.;database=Northwind;uid=sa;pwd=sa;");

            conn.Open();
            DesConn.Open();

            bulk = new SqlBulkCopy(DesConn);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Insert(0, "BulkCopy started " + DateTime.Now.ToString("HH - MM - ss"));
            // Perform an initial count on the destination table.
            SqlCommand command = new SqlCommand("SELECT * FROM Items", conn);

            SqlDataReader reader = command.ExecuteReader();

            bulk.DestinationTableName = "NewItems";
            bulk.WriteToServer(reader);

            reader.Close();

            listBox1.Items.Insert(0, "BulkCopy end " + DateTime.Now.ToString("HH - MM - ss"));
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SqlCommand comm = new SqlCommand("Delete NewItems", DesConn);
            comm.ExecuteNonQuery();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            listBox1.Items.Insert(0, "Copy started " + DateTime.Now.ToString("HH - MM - ss"));

            // Perform an initial count on the destination table.
            SqlCommand command = new SqlCommand("SELECT * FROM Items", conn);

            SqlDataReader reader = command.ExecuteReader();

            SqlCommand comm = new SqlCommand("", DesConn);
            while (reader.Read())
            {
                comm.CommandText = "Insert into NewItems values(" + reader.GetValue(0).ToString() + ",'" + reader.GetValue(1).ToString() + "')";
                comm.ExecuteNonQuery();
            }

            reader.Close();

            listBox1.Items.Insert(0, "Copy end " + DateTime.Now.ToString("HH - MM - ss"));
        }

        private void Copy_Load(object sender, EventArgs e)
        {
            WindowsIdentity user = System.Security.Principal.WindowsIdentity.GetCurrent();

            this.Text = user.Name;

            toolStripStatusLabel1.Text = user.Name;
        }
    }
}
Advertisements

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s