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#语言和相关的库,我们可以处理各种数据处理的需求。
注意:本文所提到的代码和库版本仅供参考,你可以根据自己的需要进行适当调整和改进。