使用C#从分隔文本文件中插入SQL Server表中的批量数据,可以通过以下步骤实现:
以下是一个示例代码:
using System;
using System.Data.SqlClient;
using System.IO;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
// 连接字符串
string connectionString = "Data Source=localhost;Initial Catalog=mydb;Integrated Security=True";
// 表名
string tableName = "mytable";
// 文件路径
string filePath = "data.txt";
// 分隔符
char delimiter = ',';
// 批量插入数据
BulkInsert(connectionString, tableName, filePath, delimiter);
}
static void BulkInsert(string connectionString, string tableName, string filePath, char delimiter)
{
// 创建数据表
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Column1", typeof(string));
dataTable.Columns.Add("Column2", typeof(string));
dataTable.Columns.Add("Column3", typeof(string));
// 读取文件
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] values = line.Split(delimiter);
DataRow dataRow = dataTable.NewRow();
dataRow["Column1"] = values[0];
dataRow["Column2"] = values[1];
dataRow["Column3"] = values[2];
dataTable.Rows.Add(dataRow);
}
}
// 批量插入数据
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = tableName;
bulkCopy.WriteToServer(dataTable);
}
}
}
}
在上面的示例代码中,我们首先创建了一个DataTable对象,用于存储从文本文件中读取的数据。然后,我们使用StreamReader类读取文本文件,并将文件内容分割成数据行。接着,我们将数据行插入到DataTable对象中。最后,我们使用SqlBulkCopy类将DataTable对象中的数据批量插入到SQL Server表中。
注意:在实际使用中,需要根据实际情况修改代码中的连接字符串、表名、文件路径和分隔符等参数。
领取专属 10元无门槛券
手把手带您无忧上云