您的位置:首页 > 数据库 > SQL

System.Data.SqlClient.SqlBulkCopy的使用方法

2009-03-26 15:47 399 查看
C#
using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = GetConnectionString();

// Open a sourceConnection to the AdventureWorks database.

using (SqlConnection sourceConnection =

new SqlConnection(connectionString))

{

sourceConnection.Open();

// Perform an initial count on the destination table.

SqlCommand commandRowCount = new SqlCommand(

"SELECT COUNT(*) FROM " +

"dbo.BulkCopyDemoMatchingColumns;",

sourceConnection);

long countStart = System.Convert.ToInt32(

commandRowCount.ExecuteScalar());

Console.WriteLine("Starting row count = {0}", countStart);

// Get data from the source table as a SqlDataReader.

SqlCommand commandSourceData = new SqlCommand(

"SELECT ProductID, Name, " +

"ProductNumber " +

"FROM Production.Product;", sourceConnection);

SqlDataReader reader =

commandSourceData.ExecuteReader();

// Open the destination connection. In the real world you would

// not use SqlBulkCopy to move data from one table to the other

// in the same database. This is for demonstration purposes only.

using (SqlConnection destinationConnection =

new SqlConnection(connectionString))

{

destinationConnection.Open();

// Set up the bulk copy object.

// Note that the column positions in the source

// data reader match the column positions in

// the destination table so there is no need to

// map columns.

using (SqlBulkCopy bulkCopy =

new SqlBulkCopy(destinationConnection))

{

bulkCopy.DestinationTableName =

"dbo.BulkCopyDemoMatchingColumns";

try

{

// Write from the source to the destination.

bulkCopy.WriteToServer(reader);

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

finally

{

// Close the SqlDataReader. The SqlBulkCopy

// object is automatically closed at the end

// of the using block.

reader.Close();

}

}

// Perform a final count on the destination

// table to see how many rows were added.

long countEnd = System.Convert.ToInt32(

commandRowCount.ExecuteScalar());

Console.WriteLine("Ending row count = {0}", countEnd);

Console.WriteLine("{0} rows were added.", countEnd - countStart);

Console.WriteLine("Press Enter to finish.");

Console.ReadLine();

}

}

}

private static string GetConnectionString()

// To avoid storing the sourceConnection string in your code,

// you can retrieve it from a configuration file.

{

return "Data Source=(local); " +

" Integrated Security=true;" +

"Initial Catalog=AdventureWorks;";

}

}


继承层次结构

System.Object

System.Data.SqlClient.SqlBulkCopy
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐