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日

相关文章

  • C#简单实现子窗体向父窗体传值的方法

    C# 简单实现子窗体向父窗体传值有多种方法,下面介绍两种常用的方法。 方法一:使用属性 在子窗体中定义一个属性,用于存储需要传递的值。 public partial class ChildForm : Form { private string _value; public string Value { get { return _value; } set …

    C# 2023年6月6日
    00
  • ASP.NET Core读取配置文件

    ASP.NET Core 读取配置文件是一种非常常见的操作,可以用于配置应用程序的行为。以下是 ASP.NET Core 基础之读取配置文件的完整攻略: 步骤一:创建 ASP.NET Core 应用程序 首先,需要一个 ASP.NET Core 应用程序。可以使用以下命令在 Visual Studio 中创建一个 ASP.NET Core 应用程序: 打开 …

    C# 2023年5月17日
    00
  • Java,C#使用二进制序列化、反序列化操作数据

    Java、C#使用二进制序列化、反序列化操作数据 在Java和C#中,我们可以使用二进制序列化和反序列化来存储和读取对象数据。二进制序列化就是将对象转化为二进制字节流的过程,反序列化则是将二进制字节流转化为对象的过程。在网络传输或者本地存储中,使用二进制序列化和反序列化可以方便的进行数据传输和存储。 Java操作示例 序列化 使用Java中的ObjectOu…

    C# 2023年6月6日
    00
  • 详解C#编程中.NET的弱事件模式

    详解C#编程中.NET的弱事件模式 弱事件模式在C#编程中是一个非常重要的概念,它可以帮助我们在事件订阅过程中避免出现内存泄漏的问题,特别是在大型项目中应用广泛。本文将详细讲解如何在C#编程中使用.NET的弱事件模式。 什么是弱事件模式 在C#编程中,事件订阅是一种常见的模式,通过它我们可以在事件发生时调用另一个方法来处理其逻辑。但是,如果我们在事件订阅过程…

    C# 2023年6月3日
    00
  • C# Directory.Delete – 删除目录

    C#中的Directory.Delete()方法用于删除指定路径下的目录,其中包括目录中所有的文件和文件夹。该方法支持递归删除目录及其子目录,同时也支持保留目录树中的空目录。该方法存在多个重载形式,可以根据传入的参数实现多种不同的删除操作。 使用方法 public static void Delete(string path, bool recursive)…

    C# 2023年4月19日
    00
  • C#获取视频某一帧的缩略图的方法

    C#获取视频某一帧的缩略图的方法 在C#中,我们可以使用FFmpeg库和GDI+库来获取视频某一帧的缩略图。本文将提供详细的“C#获取视频某一帧的缩略图的方法”的完整攻略,包括如何使用FFmpeg库和GDI+库获取视频某一帧的缩略图,以及两个示例代码。 使用FFmpeg库获取视频某一帧的缩略图 在使用FFmpeg库获取视频某一帧的缩略图时,我们可以使用以下步…

    C# 2023年5月15日
    00
  • C#创建WCF服务控制台应用程序详解

    C#创建WCF服务控制台应用程序详解 WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的技术。它可以实现跨平台、跨语言的通信,支持多种协议和编码方式,提供了更多的功能,如消息队列、事务处理、安全性、可靠性等。本文将详细讲解如何使用C#创建WCF服务控制台应用程序,并提供两个示例。 1. 创建WCF服务控制…

    C# 2023年5月15日
    00
  • 简单介绍SQL Server中的自旋锁

    SQL Server是一种关系型数据库管理系统,其管理和保护数据的并发访问性是非常重要的。为了满足这个需求,SQL Server使用了锁机制,其中自旋锁是其中一种类型的锁。 什么是自旋锁 自旋锁是一种轻量级的锁类型,它采用了忙等待的方式来解决锁冲突,并避免了线程的上下文切换。当一个线程尝试获得自旋锁时,如果锁没有被占用,该线程会立即获得锁,并继续执行。如果锁…

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