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

了解如何从Excel读取数据并将其写入SQL Server是一个非常有用的技能。以下是实现此目标的完整攻略:

第一步:引入所需的库

C#中读取和写入Excel需要使用外部库。我们需要下载并添加以下NuGet包:

  1. Microsoft.Office.Interop.Excel:允许操作Excel文件。
  2. Microsoft.ACE.OLEDB.12.0:允许使用OleDb连接器连接Excel文件。

第二步:连接Excel文件

我们需要指定Excel文件的路径,然后打开工作表,以便可以读取其中的数据。下面是连接Excel文件的示例代码:

string excelFilePath = @"C:\Test\Test.xlsx";
string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", excelFilePath);

var excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();

var excelCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", excelConnection);
var excelReader = excelCommand.ExecuteReader();

while (excelReader.Read())
{
    // 读取每一行数据
}

excelReader.Close();
excelConnection.Close();

第三步:连接SQL Server

连接SQL Server的方法与连接Excel文件类似。我们需要指定服务器地址和要连接的数据库。

以下是连接SQL Server的示例代码:

string serverName = "MyServerName";
string databaseName = "MyDatabaseName";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=SSPI;", serverName, databaseName);

var sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();

// 执行SQL语句

第四步:读取并写入数据

现在我们已经连接了Excel文件和SQL Server,我们需要读取Excel文件中的数据并将其写入SQL Server中。

以下是将Excel文件中的数据读取并将其写入SQL Server的示例代码:

while (excelReader.Read())
{
    string column1 = excelReader[0].ToString();
    string column2 = excelReader[1].ToString();
    string column3 = excelReader[2].ToString();

    string sql = string.Format("INSERT INTO MyTable(Column1, Column2, Column3) VALUES ('{0}', '{1}', '{2}')", column1, column2, column3);
    var sqlCommand = new SqlCommand(sql, sqlConnection);
    sqlCommand.ExecuteNonQuery();
}

示例说明

以下是两个示例,示例数据存储在Excel文件中。我们将读取该数据并将其写入SQL Server中。

示范1

Excel文件中包含以下数据:

Column1 Column2 Column3
111 222 333
444 555 666
777 888 999

我们将读取此数据并将其写入名为MyTable的SQL Server表中。

string excelFilePath = @"C:\Test\Test.xlsx";
string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", excelFilePath);
var excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
var excelCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", excelConnection);
var excelReader = excelCommand.ExecuteReader();

string serverName = "MyServerName";
string databaseName = "MyDatabaseName";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=SSPI;", serverName, databaseName);
var sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();


while (excelReader.Read())
{
    string column1 = excelReader[0].ToString();
    string column2 = excelReader[1].ToString();
    string column3 = excelReader[2].ToString();

    string sql = string.Format("INSERT INTO MyTable(Column1, Column2, Column3) VALUES ('{0}', '{1}', '{2}')", column1, column2, column3);
    var sqlCommand = new SqlCommand(sql, sqlConnection);
    sqlCommand.ExecuteNonQuery();
}

excelReader.Close();
excelConnection.Close();
sqlConnection.Close();

示范2

Excel文件中包含以下数据:

First Name Last Name Email
John Doe johndoe@example.com
Jane Doe janedoe@example.com
Bob Smith bobsmith@example.com

我们将读取此数据并将其写入名为Users的SQL Server表中。

string excelFilePath = @"C:\Test\Test.xlsx";
string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", excelFilePath);
var excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
var excelCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", excelConnection);
var excelReader = excelCommand.ExecuteReader();

string serverName = "MyServerName";
string databaseName = "MyDatabaseName";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=SSPI;", serverName, databaseName);
var sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();


while (excelReader.Read())
{
    string firstName = excelReader[0].ToString();
    string lastName = excelReader[1].ToString();
    string email = excelReader[2].ToString();

    string sql = string.Format("INSERT INTO Users(FirstName, LastName, Email) VALUES ('{0}', '{1}', '{2}')", firstName, lastName, email);
    var sqlCommand = new SqlCommand(sql, sqlConnection);
    sqlCommand.ExecuteNonQuery();
}

excelReader.Close();
excelConnection.Close();
sqlConnection.Close();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 从Excel读取数据向SQL server写入 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • ASP.NET中后台注册js脚本使用的方法对比

    当我们需要在ASP.NET后台页面中注册JavaScript脚本时,有两种常见的方法可以实现。它们分别是使用ScriptManager和ClientScriptManager。 1. 使用ScriptManager ScriptManager是ASP.NET中的一个控件,可以用来管理客户端脚本。当我们需要在ASP.NET页面中嵌入JavaScript文件或脚…

    C# 2023年5月31日
    00
  • ASP.NET MVC实现下拉框多选

    以下是“ASP.NET MVC实现下拉框多选”的完整攻略: 什么是ASP.NET MVC下拉框多选 ASP.NET MVC下拉框多选是一种机制,允许用户在下拉框中选择多个选项。这种机制可以提高用户体验,并使用户能够更轻松地选择多个选项。 ASP.NET MVC实现下拉框多选的步骤 ASP.NET MVC实现下拉框多选的步骤包括以下几个步骤: 在视图中创建下拉…

    C# 2023年5月12日
    00
  • C#中结构(struct)的部分初始化和完全初始化实例分析

    下面是详细讲解“C#中结构(struct)的部分初始化和完全初始化实例分析”的完整攻略。 什么是结构(struct) 在C#中,结构是一种值类型的数据结构,可以在它里面定义变量和方法,其中变量被称为字段。结构和类很相似,但是结构有一些自己的特点,如: 结构是值类型,而类是引用类型; 结构不支持继承; 结构不能定义默认构造函数; 结构可以定义ParamArra…

    C# 2023年5月15日
    00
  • C# wpf解决Popup弹出位置异常问题解决

    在WPF中,我们可以通过Popup弹出一个窗口,但是由于窗口的弹出位置可能会和我们期望的不一样,而且有时候在某些屏幕分辨率下表现得更为明显。在这种情况下,我们需要进行调整以确保Popup窗口出现在我们期望的位置。下面是解决这个问题的方法: 1. 设置PlacementMode属性 在Popup控件中,可以通过设置PlacementMode属性来控制Popup…

    C# 2023年6月6日
    00
  • 一则C#简洁瀑布流代码

    下面我将为您详细讲解如何编写一则C#简洁的瀑布流代码: 第一步:确定数据源 首先,我们需要确定我们要用来呈现瀑布流的数据源。这通常是一个包含多个对象的列表,例如,我们可以用以下方式来声明一个包含多个图片信息的列表: List<ImageInfo> images = new List<ImageInfo>(); 其中,ImageInfo…

    C# 2023年6月7日
    00
  • C#异常处理知识汇总

    C#异常处理知识汇总 什么是异常 异常是指程序运行过程中,出现了不可预测的错误或者状态,导致程序无法正常执行。异常属于错误,不能被忽略,需要进行处理。 C#中的异常处理 在C#中,可以使用try-catch语句进行异常处理。其基本语法结构如下: try { // 可能会抛出异常的代码块 } catch (Exception ex) { // 异常处理代码块 …

    C# 2023年5月15日
    00
  • C# 爬虫简单教程

    关于“C#爬虫简单教程”的完整攻略,可以分为以下几个步骤: 1. 确定需求和目标 在开始写爬虫之前,首先需要确定爬虫的目标和需求,例如要爬取哪些网站,获取哪些数据,以及存储数据的方式等等。在确定需求的基础上,就可以开始编写代码了。 2. 安装和准备开发环境 使用C#编写爬虫,需要安装.Net框架和Visual Studio开发环境。具体安装过程可以参考微软官…

    C# 2023年5月15日
    00
  • C#实现给图片添加日期信息的示例详解

    我们来详细讲解“C#实现给图片添加日期信息的示例详解”。 目录 示例1:使用ExifLib库读取图片信息 示例2:给图片添加日期信息 示例1:使用ExifLib库读取图片信息 首先,我们需要使用一个Exif库获取图片的元数据信息,这里我推荐使用ExifLib库。 以下是一个简单的示例,演示了如何使用ExifLib库读取图片的元数据信息: using Syst…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部