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日

相关文章

  • 浅谈C#基础之类的访问修饰符

    浅谈C#基础之类的访问修饰符 C#中共有5种访问修饰符,分别为public、private、protected、internal和protected internal。不同的访问修饰符可以在不同的范围内控制类、方法、属性、字段及其他成员的可访问性。 public访问修饰符 public访问修饰符用于指定一个类、方法、属性或字段可以从任何其他类(包括其他项目中…

    C# 2023年5月31日
    00
  • C#获取某路径文件夹中全部图片或其它指定格式的文件名的实例方法

    要获取某路径文件夹中全部图片或其它指定格式的文件名,我们可以使用C#自带的Directory类中的GetFiles方法。下面是详细的实现方法: 步骤1:引用命名空间 首先我们需要在代码中引用System.IO命名空间,这个命名空间中包含了许多文件和文件夹相关的类。 using System.IO; 步骤2:编写获取文件名的方法 我们将编写的方法命名为GetF…

    C# 2023年6月2日
    00
  • .NetCore使用Swagger+API多版本控制的流程分析

    在.NET Core中,我们可以使用Swagger和API多版本控制来管理和文档化Web API。在本攻略中,我们将详细讲解如何使用Swagger和API多版本控制来管理和文档化Web API,并解析可能遇到的问题。 安装Swagger:首先,我们需要安装Swagger。我们可以使用NuGet包管理器来安装Swashbuckle.AspNetCore包。安装…

    C# 2023年5月16日
    00
  • 在asp.net(C#)中采用自定义标签和XML、XSL显示数据

    在 ASP.NET(C#) 中,使用自定义标签和 XML、XSL 将数据显示在页面上的过程需要分为以下几个步骤: 创建 XML 数据源:首先,我们需要创建一个 XML 数据源,该数据源应该包含我们需要在页面上显示的数据。可以使用 Visual Studio 中的“XML 文件”创建一个 XML 文件,然后在其中添加数据。 例如,我们创建一个名为“data.x…

    C# 2023年6月3日
    00
  • .net后台代码调用前台JS的两种方式

    你可以按照以下步骤来进行。 步骤一:引入前端JS文件 在实现后台调用前台JS的功能之前,首先需要在HTML页面引入JS文件。我们可以使用以下代码引入JS文件: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo…

    C# 2023年5月31日
    00
  • c#唯一值渲染实例代码

    让我来为你详细讲解“c#唯一值渲染实例代码”的完整攻略。 什么是唯一值渲染? 唯一值渲染是一种用于地图制作的渲染技术,可以对地图上的数据进行分类,并按照给定的颜色或符号进行呈现。唯一值渲染常见于地图渲染和数据可视化,比如针对不同类型的土地使用进行不同的着色。 使用唯一值渲染实现地图制作 要使用唯一值渲染实现地图制作,首先需要确定你要渲染的数据,比如一张地图上…

    C# 2023年5月31日
    00
  • C# Winform实现石头剪刀布游戏

    下面我将详细讲解“C#Winform实现石头剪刀布游戏”的完整攻略。 准备工作 首先,我们需要创建一个Winform应用程序,然后在窗体中添加三个按钮,分别代表石头、剪刀、布。接着,我们需要编写代码,实现石头剪刀布的逻辑。 实现过程 1.定义变量 首先,我们需要在代码中定义三个变量,分别代表石头、剪刀和布。代码如下: int rock = 1; int sc…

    C# 2023年5月15日
    00
  • C#中的Explicit和Implicit详情

    下面是关于“C#中的Explicit和Implicit”的完整攻略。 什么是Explicit和Implicit 在C#中,有两种类型的类型转换:显示类型转换(Explicit)和隐式类型转换(Implicit)。前者需要显式地进行转换,而后者则可以自动进行转换。 为什么需要类型转换呢?因为在编程过程中,有时候需要将一个类型转换为另一个类型,以满足需求或者避免…

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