科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用.NET SqlBulkCopy类执行批量复制

用.NET SqlBulkCopy类执行批量复制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在.NET Framework 1.1中,可以通过SqlCommand对象利用bcp,但.NET Framework 2.0中增加了SqlBulkCopy类来简化这个繁琐的过程。

作者:builder.com.cn 2007年6月13日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.IO;
using System.Data;
namespace BCP {
class Program{
static void Main(){
string cString = "Data Source=(local);User ID=tester;Password=tester;Initial Catalog=Northwind;";
using (SqlConnectionconn = new SqlConnection(cString)) {
conn.Open();
SqlCommandcomm = new SqlCommand("SELECT FirstName, LastName, HomePhone, Title FROM Employees;", conn);
SqlDataReader reader = comm.ExecuteReader();
using (SqlConnection conn2 = new SqlConnection(cString)) {
conn2.Open();
using (SqlBulkCopybcp = new SqlBulkCopy(conn2)){
DataTabledt = new DataTable();
DataRowdr;
DataColumn dc;
bcp.DestinationTableName = "dbo.Employees_bcp";
dc = new DataColumn();
dc.ColumnName = "Last";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.ColumnName = "First";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.ColumnName = "HomePhone";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.ColumnName = "Title";
dt.Columns.Add(dc);
StreamReadersr = new StreamReader(@"c:\emp.txt");
string input;
while ((input = sr.ReadLine()) != null) {
string[] s = input.Split(new char[] {','});
dr = dt.NewRow();
dr["Last"] = s[0];
dr["First"] = s[1];
dr["HomePhone"] = s[2];
dr["Title"] = s[3];
dt.Rows.Add(dr);
}
sr.Close();
try {
bcp.ColumnMappings.Add("Last", "LastName");
bcp.ColumnMappings.Add("First", "FirstName");
bcp.ColumnMappings.Add("Title","Title");
bcp.ColumnMappings.Add("HomePhone","HomePhone");
bcp.WriteToServer(dt);
} catch (Exception ex){
Console.WriteLine(ex.Message);
} finally {
reader.Close();
} } } } } } }
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章