SqlBulkCopy类数据导入SQL sever(2)

2019-01-19 14:25

执行多次更新并无差异——你只需重复使用SqlDataReader对象即可。在同一个数据库中从一个表往另一个表复制是对bcp的误用。另一方面,从外部文件中输入数据是一个常见的操作。

列表C在将一个文本文件输入到前一个例子中用到的表中时就采用了这个方法。(列表D中是对应的VB.NET代码。)这段代码建立一个新的DataTable对象,为每种数据设立列。

每次读入一行文件,并用逗号分列,每个数据值分配给DataTable中适当的列。接下来,SqlBulkCopy类的ColumnMappings属性允许你使用列名称,将数据源中(我们的DataTable)的一个列映射到目的地。完成映射后,WriteToServer方法使用提交给它的DataTable执行批量操作。 数据移植最佳实践

虽然数据移植是开发者经常要执行的任务,但它并不是一个非常流行的任务。请在文后的讨论部分与.NET社区分享你的最轻松(最糟糕)的数据移植经历和最佳实践。

――――――――――――――――――――――――――― using System;

using System.Collections.Generic; using System.Text;

using System.Data.SqlClient; namespace BCP { class Program { static void Main(){

string cString = \

ID=tester;Password=tester;Initial Catalog=Northwind;\ using (SqlConnectionconn = new SqlConnection(cString))

{

conn.Open(); SqlCommand comm = new SqlCommand(\EmployeeID, FirstName, LastName, HomePhone FROM Employees;\

SqlDataReader reader = comm.ExecuteReader();

using (SqlConnection conn2 = new SqlConnection(cString)){ conn2.Open();

using (SqlBulkCopy bcp = new SqlBulkCopy(conn2)) {

bcp.DestinationTableName = \ try {

bcp.WriteToServer(reader); } catch (Exception ex) {

Console.WriteLine(ex.Message); } finally { reader.Close(); } } } } } } }

―――――――――――――――――――――――――――

Imports System.Data.SqlClient Module Module1 Sub Main()

Dim cString As String

cString = \Catalog=Northwind;\

Dim conn As New SqlConnection conn = New SqlConnection(cString) conn.Open()

Dim comm As SqlCommand

comm Dim reader As SqlDataReader reader = comm.ExecuteReader() Dim conn2 As SqlConnection

conn2 = New SqlConnection(cString) conn2.Open()

Dim bcp As SqlBulkCopy

bcp = New SqlBulkCopy(conn2)

bcp.DestinationTableName = \ Try

bcp.WriteToServer(reader) Catch ex As Exception

Console.WriteLine(ex.Message) Finally

reader.Close() End Try End Sub End Module

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 = \

ID=tester;Password=tester;Initial Catalog=Northwind;\ using (SqlConnectionconn = new SqlConnection(cString)) { conn.Open();

SqlCommandcomm = new SqlCommand(\FirstName, LastName, HomePhone, Title FROM Employees;\

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 = \ dc = new DataColumn(); dc.ColumnName = \dt.Columns.Add(dc); dc = new DataColumn(); dc.ColumnName = \dt.Columns.Add(dc); dc = new DataColumn();

dc.ColumnName = \dt.Columns.Add(dc); dc = new DataColumn(); dc.ColumnName = \dt.Columns.Add(dc);

StreamReadersr = new StreamReader(@\ string input;

while ((input = sr.ReadLine()) != null) { string[] s = input.Split(new char[] ); dr = dt.NewRow(); dr[\dr[\dr[\dr[\dt.Rows.Add(dr); }

sr.Close(); try {

bcp.ColumnMappings.Add(\bcp.ColumnMappings.Add(\bcp.ColumnMappings.Add(\

bcp.ColumnMappings.Add(\bcp.WriteToServer(dt);

} catch (Exception ex){

Console.WriteLine(ex.Message); } finally { reader.Close(); } } } } } } }

Imports System.Data

Imports System.Data.SqlClient Imports System.IO Module Module1 Sub Main()

Dim cString As String Dim comma As Char comma = \

cString = \Catalog=Northwind;\

Dim conn As New SqlConnection conn = New SqlConnection(cString) conn.Open()

Dim comm As SqlCommand comm = New SqlCommand(\EmployeeID, FirstName, LastName, HomePhone FROM Employees;\

Dim reader As SqlDataReader reader = comm.ExecuteReader() Dim conn2 As SqlConnection

conn2 = New SqlConnection(cString) conn2.Open()

Dim bcp As SqlBulkCopy

bcp = New SqlBulkCopy(conn2)

bcp.DestinationTableName = \ Try

Dim dt As DataTable Dim dr As DataRow Dim dc As DataColumn dt = New DataTable()

bcp.DestinationTableName = \ dc = New DataColumn() dc.ColumnName = \dt.Columns.Add(dc) dc = New DataColumn() dc.ColumnName = \dt.Columns.Add(dc) dc = New DataColumn()

dc.ColumnName = \

dt.Columns.Add(dc) dc = New DataColumn() dc.ColumnName = \dt.Columns.Add(dc)

Dim sr As StreamReader

sr = New StreamReader(\ Dim input As String input = sr.ReadLine()

While Not (input Is Nothing) Dim s As String()

s = input.Split(comma) dr = dt.NewRow() dr(\dr(\dr(\dr(\dt.Rows.Add(dr)

input = sr.ReadLine() End While sr.Close()

bcp.ColumnMappings.Add(\bcp.ColumnMappings.Add(\bcp.ColumnMappings.Add(\

bcp.ColumnMappings.Add(\bcp.WriteToServer(dt) Catch ex As Exception

Console.WriteLine(ex.Message) Finally

reader.Close() End Try End Sub End Module


SqlBulkCopy类数据导入SQL sever(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(目录)中国综艺节目市场发展预测及投资咨询报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: