C# 从Excel读取数据向SQL server写入

1. 数据导入的背景和目的

在软件开发中,经常需要从Excel表格中读取数据,并将这些数据写入到SQL Server数据库中,以便进行后续的数据处理和分析。C#是一种强大的编程语言,可以使用它的Excel和SQL Server相关的库来实现数据导入的功能。

2. 准备工作

2.1 安装必要的库

在开始之前,我们需要在项目中安装一些必要的库,以便能够连接Excel和SQL Server。我们可以使用NuGet包管理器来安装这些库。打开Visual Studio,右键单击项目,选择“管理NuGet程序包”。在搜索框中输入“ExcelDataReader”并安装它。同样地,搜索并安装“SqlServer”和“Dapper”库。

Install-Package ExcelDataReader

Install-Package System.Data.SqlClient

Install-Package Dapper

2.2 创建数据库和数据表

在SQL Server中创建一个数据库和一个用于存储Excel数据的数据表。我们可以使用SQL Server Management Studio或者通过SQL命令来完成这个步骤。

CREATE DATABASE MyDatabase

USE MyDatabase

CREATE TABLE MyTable

(

Name VARCHAR(50),

Age INT,

Email VARCHAR(100)

)

3. 读取Excel中的数据

为了读取Excel中的数据,我们需要用到ExcelDataReader库。下面是读取Excel数据的代码示例:

using System.Data;

using System.IO;

using ExcelDataReader;

public DataTable ReadExcelData(string filePath)

{

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))

{

using (var reader = ExcelReaderFactory.CreateReader(stream))

{

var dataSet = reader.AsDataSet(new ExcelDataSetConfiguration

{

UseColumnDataType = true,

ConfigureDataTable = _ => new ExcelDataTableConfiguration

{

UseHeaderRow = true

}

});

return dataSet.Tables[0];

}

}

}

在上面的代码中,我们打开了一个Excel文件,并将其转换为DataSet。然后,我们返回了DataSet中的第一个表格,这个表格就是我们要导入到数据库的数据。

注意:请确保你的Excel文件与上述代码中指定的文件路径一致,并且第一个表格是你想要导入的数据。

4. 将数据写入SQL Server

要将数据写入SQL Server,我们可以使用Dapper库。Dapper是一个简单、快速、高效的ORM(对象关系映射)工具。下面是将数据写入SQL Server的代码示例:

using System.Data.SqlClient;

using Dapper;

public void WriteToSqlServer(DataTable data)

{

using (var connection = new SqlConnection("your-connection-string"))

{

connection.Open();

foreach (DataRow row in data.Rows)

{

var name = row["Name"].ToString();

var age = (int)row["Age"];

var email = row["Email"].ToString();

connection.Execute("INSERT INTO MyTable (Name, Age, Email) VALUES (@Name, @Age, @Email)",

new { Name = name, Age = age, Email = email });

}

}

}

在上面的代码中,我们使用Dapper库的Execute方法执行了一个SQL INSERT语句,并将Excel中的数据插入到了名为MyTable的表中。

注意:请确保你的连接字符串正确设置,并且数据库中存在名为MyTable的表。

5. 整合代码

现在,我们可以将上述读取Excel和写入SQL Server的代码整合到一个方法中,以便能够一次性完成数据导入的过程。

public void ImportDataFromExcelToSqlServer(string filePath)

{

var data = ReadExcelData(filePath);

WriteToSqlServer(data);

}

你可以在你的应用程序中调用ImportDataFromExcelToSqlServer方法,并传递Excel文件的路径作为参数。

6. 总结

通过使用C#的ExcelDataReader库和Dapper库,我们可以轻松地实现从Excel读取数据并写入到SQL Server的功能。这种方法方便、高效,适用于各种数据导入的场景。通过灵活运用C#语言和相关的库,我们可以处理各种数据处理的需求。

注意:本文所提到的代码和库版本仅供参考,你可以根据自己的需要进行适当调整和改进。

后端开发标签