C#实现Excel表数据导入Sql Server数据库中的方法

C#实现Excel表数据导入Sql Server数据库中的方法

我们可以使用C#编写代码将Excel表中的数据导入到Sql Server数据库中,下面是具体的步骤。

步骤一:连接到Excel表格

首先,我们需要创建一个连接字符串,并使用OleDbConnection类将其连接到Excel表格。下面是连接字符串的两个示例:

string connectionString =
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\MyExcel.xlsx;Extended Properties=" +
    "\"Excel 12.0 Xml;HDR=YES;IMEX=1;\"";

或者

string connectionString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\MyExcel.xls;Extended Properties=" +
    "\"Excel 8.0;HDR=YES;IMEX=1;\"";

步骤二:从Excel表获取数据

接下来,我们可以使用OleDbDataAdapter类从Excel表中获取数据,并将数据保存在DataTable对象中。下面是示例代码:

using (OleDbConnection conn = new OleDbConnection(connectionString))
{
    conn.Open();
    OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    conn.Close();
}

步骤三:连接到Sql Server数据库

现在,我们需要创建一个新的连接字符串,并使用SqlConnection类将其连接到Sql Server数据库。下面是连接字符串的一个示例:

string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=True;";

步骤四:将数据插入到Sql Server数据库中

最后,我们可以使用SqlBulkCopy类将数据批量插入到Sql Server数据库中。下面是示例代码:

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    SqlBulkCopy bc = new SqlBulkCopy(conn);
    bc.DestinationTableName = "MyTable";
    bc.WriteToServer(dt);
    conn.Close();
}

这段代码将数据表dt中的所有行插入到名为MyTable的Sql Server表中。

示例一:从Excel表格导入数据到Sql Server数据库

下面是一个完整的示例代码,它将Excel表中的数据导入到Sql Server数据库中:

using System.Data.OleDb;
using System.Data.SqlClient;
using System.Data;

string excelFile = @"C:\MyExcel.xlsx";
string connectionString =
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";Extended Properties=" +
    "\"Excel 12.0 Xml;HDR=YES;IMEX=1;\"";
string sqlConnectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=True;";

using (OleDbConnection conn = new OleDbConnection(connectionString))
{
    conn.Open();
    OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    conn.Close();

    using (SqlConnection sqlConn = new SqlConnection(sqlConnectionString))
    {
        sqlConn.Open();
        SqlBulkCopy bc = new SqlBulkCopy(sqlConn);
        bc.DestinationTableName = "MyTable";
        bc.WriteToServer(dt);
        sqlConn.Close();
    }
}

示例二:使用CSV文件导入

我们也可以使用CSV文件来导入数据到Sql Server数据库中。下面是一个示例代码:

using System.IO;
using System.Data.SqlClient;
using System.Data;

string csvFile = @"C:\MyCsv.csv";
string sqlConnectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=True;";
DataTable dataTable = new DataTable();

using (StreamReader sr = new StreamReader(csvFile))
{
    string[] headers = sr.ReadLine().Split(',');
    foreach (string header in headers)
    {
        dataTable.Columns.Add(header);
    }
    while (!sr.EndOfStream)
    {
        string[] rows = sr.ReadLine().Split(',');
        DataRow dataRow = dataTable.NewRow();
        for (int i = 0; i < headers.Length; i++)
        {
            dataRow[i] = rows[i];
        }
        dataTable.Rows.Add(dataRow);
    }
}

using (SqlConnection sqlConn = new SqlConnection(sqlConnectionString))
{
    sqlConn.Open();
    SqlBulkCopy bc = new SqlBulkCopy(sqlConn);
    bc.DestinationTableName = "MyTable";
    bc.WriteToServer(dataTable);
    sqlConn.Close();
}

在这个示例中,我们使用StreamReader类读取CSV文件,并将结果保存在DataTable对象中。然后,我们使用SqlBulkCopy类将数据批量插入到Sql Server数据库中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现Excel表数据导入Sql Server数据库中的方法 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • .NET Core对象池的应用:设计篇

    .NET Core 对象池的应用:设计篇 在 .NET Core 中,对象池是一种用于重用对象的机制,它可以提高应用程序的能和可伸缩性。在设计对象池时,需要考虑对象的生命周期、对象的状态、对象的线程安全性等因素。本攻略将详细讲解 .NET Core 对象池的设计,包括如何设计对象池、如何管理对象池、如何处理对象池中的对象等。 1. 设计对象池 设计一个对象池…

    C# 2023年5月17日
    00
  • Asp.Net类库中发送电子邮件的代码

    发送电子邮件是现代应用程序中常见需求之一,Asp.Net类库也提供了相关的功能以便于开发者发送邮件。以下是关于使用Asp.Net类库发送电子邮件的完整攻略: 步骤1:导入命名空间 在使用Asp.Net类库发送电子邮件之前,需要导入以下命名空间: using System.Net; using System.Net.Mail; 这些命名空间分别提供了电子邮件相…

    C# 2023年5月31日
    00
  • 使用 CliWrap 让C#中的命令行交互(推荐)

    使用 CliWrap 可以让 C# 中的命令行交互变得更加方便和高效。下面是具体的步骤和示例说明。 环境准备 在开始使用 CliWrap 之前,需要先确保电脑上已经安装了 .NET Core 开发环境。可以在终端中输入下面的命令检查。 dotnet –version 如果输出了版本号,则说明已经安装了 .NET Core。否则需要去官网下载并安装。 另外,…

    C# 2023年6月3日
    00
  • C#实现UI控件输出日志的方法详解

    标题:C#实现UI控件输出日志的方法详解 正文: 在C#中,我们通常使用控制台输出日志信息。但是,在UI应用程序中,我们更经常使用UI控件来展示日志信息。本文将详细介绍如何在C#中实现UI控件输出日志的方法。 基本思路 UI控件输出日志的基本思路是通过控制UI控件的Text属性,将日志信息添加到UI控件上,从而实现日志的输出。这个过程可以使用delegate…

    C# 2023年5月15日
    00
  • WinForm调用jar包的方法分析

    WinForm是一种Windows桌面应用程序开发框架,而Java的jar包是一种Java程序打包方式。在WinForm应用程序中,我们可能需要调用Java的jar包来实现某些功能。本文将提供详解“WinForm调用jar包的方法分析”的完整攻略,包括如何将Java的jar包添加到WinForm项目中、如何在WinForm中调用Java的jar包等。 将Ja…

    C# 2023年5月15日
    00
  • ASP.NET Core依赖注入DI容器的方法实现

    ASP.NET Core依赖注入DI容器的方法实现攻略 ASP.NET Core依赖注入(DI)是一种设计模式,它允许我们将对象的创建和管理从应用程序代码中分离出来。在ASP.NET Core中,我们可以使用内置的DI容器来实现依赖注入。本攻略将介绍如何使用ASP.NET Core的DI容器。 步骤 以下是使用ASP.NET Core的DI容器的步骤: 在S…

    C# 2023年5月17日
    00
  • C#实现数独解法

    C#实现数独解法 简介 数独游戏是一种经典的逻辑推理游戏。在9*9个方格中,按照一定的规则填入数字,使得每行、每列、每宫都含有1-9的数字且不重复。本文将介绍如何使用C#实现数独解法。 准备 在开始编写代码之前,先准备好一个数独问题作为输入。例如: 0 0 0 0 6 7 5 2 0 7 0 0 0 0 5 0 0 4 0 0 0 2 0 0 0 0 9 0…

    C# 2023年6月6日
    00
  • 在AspNetCore中使用极验做行为认证的验证流程

    在AspNetCore中使用极验做行为认证的验证流程 极验是一种基于行为认证的验证方式,可以有效地防止机器人攻击。在AspNetCore中,我们可以使用极验来进行行为认证。本攻略将详细介绍在AspNetCore中使用极验做行为认证的验证流程,并提供两个示例说明。 准备工作 在使用极验做行为认证之前,我们需要完成以下准备工作: 注册极验账号。 我们需要在极验官…

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