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日

相关文章

  • asp.net中动态改变网页标题的代码

    当我们开发一个ASP.NET网站时,通常需要根据不同的内容动态改变网页的标题。这个过程可以通过C#的代码实现。下面是详细的攻略: 步骤1:引用命名空间 首先,需要在页面的C#代码文件中引用System.Web命名空间,这个命名空间提供了许多ASP.NET应用程序的核心功能。 using System.Web; 步骤2:编写代码 在页面的C#代码文件中,可以在…

    C# 2023年5月31日
    00
  • asp.net数据绑定DataBind使用方法

    ASP.NET数据绑定DataBind使用方法 在ASP.NET中,数据绑定是开发Web应用程序的重要部分。通俗的说,数据绑定就是将数据源中的数据绑定到Web控件上,展现出来给用户。在ASP.NET中,数据绑定主要分为两类:一是控件数据绑定,二是自定义数据模板数据绑定。接下来,我们将一一介绍这两种数据绑定的使用方法。 控件数据绑定 控件数据绑定是指将数据源中…

    C# 2023年5月31日
    00
  • Entity Framework模型优先与实体对象查询

    Entity Framework是一个开源的ORM(Object Relational Mapping)框架,它允许我们通过使用.Net语言进行开发工作,同时又隐藏了底层ORM Query语言的操作,从而大大减轻了我们的工作负担。 在EF中,有两种常见的开发模式:数据库优先和模型优先。其中,模型优先的方式作为一种高效、简化开发过程的策略,更加广泛使用。在EF…

    C# 2023年6月3日
    00
  • 详解.NET Core 3.0 里新的JSON API

    在本攻略中,我们将详细讲解.NET Core 3.0中新的JSON API,并提供两个示例说明。 安装Microsoft.AspNetCore.Mvc.NewtonsoftJson:首先,我们需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson NuGet包。我们可以使用Visual Studio的Get包管理器来安装Mic…

    C# 2023年5月16日
    00
  • 深入浅出CSS3 background-clip,background-origin和border-image教程

    深入浅出CSS3 background-clip,background-origin和border-image教程 介绍 本文将讲解CSS3中的background-clip、background-origin和border-image的用法和示例,并详细介绍它们的概念和属性设置方法。这些属性在CSS网页设计中非常有用,可以使页面元素的背景图案定制更加灵活,…

    C# 2023年5月31日
    00
  • Java import static及import原理区别解析

    Java import static及import原理区别解析 在Java中,我们可以使用import语句来导入其他类或接口的定义,以便在当前类中使用它们。除了常规的import语句外,Java还提供了import static语句,用于导入静态成员。本文将详细讲解Java import static及import原理区别解析。 import语句 在Java…

    C# 2023年5月15日
    00
  • 关于ASP.NET中TreeView用法的一个小例子

    我来详细讲解一下“关于ASP.NET中TreeView用法的一个小例子”的完整攻略。 标题 首先,我们需要明确标题。根据要求,这个攻略的标题应该是“关于ASP.NET中TreeView用法的一个小例子”,因此我们可以将其作为一级标题: # 关于ASP.NET中TreeView用法的一个小例子 描述 接下来,我们需要对这个小例子的背景和目标进行描述。因为我们需…

    C# 2023年5月31日
    00
  • C# Path.GetDirectoryName(string path):获取指定路径的目录路径

    Path.GetDirectoryName(string path)方法可以用于获取指定路径的目录名称。该方法会返回指定路径字符串中的目录信息。 使用方法: 要使用Path.GetDirectoryName方法,只需要将需要获取的文件路径作为参数传入该方法中即可。该方法可以是静态的,也可以是实例的。以下是代码示例: //静态方法 string directo…

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