OLE DB (Object Linking and Embedding, Database, sometimes written as OLEDB or OLE-DB) an API designed by Microsoft providing a set of interfaces that allows accessing data from a variety of sources that do not necessarily implement SQL.

using System;
using System.Data.OleDb;
using System.Data.SqlClient; namespace ExcelMigration
{
class Program
{
static void Main(string[] args)
{
// Excel File Path Location
string excelfilepath = @"C:\Users\rakesh.kumar\Documents\employee.xls"; // SQL Server TableName
string TableName = "Sample"; // Make Sure Your Sheet Name And Columns Names Are Correct, here sheet name is sheet4
string exceldataquery = "select FirstName,LastName,Department,Gender from [Sheet1$]";
try
{
// Excel Connection String and SQL Server Connection String
string excelconnectionstring = @"provider=microsoft.jet.oledb.4.0;
data source=" + excelfilepath +
";extended properties=" + "\"excel 4.0;hdr=yes;\"";
string sqlconnectionstring = @"server=(localdb)\ProjectsV13;
database = TestDB; connection reset = false"; //Execute A Query To Drase Any Previous Data From Employee Table
string deletesqlquery = "delete from " + TableName;
SqlConnection sqlconn = new SqlConnection(sqlconnectionstring);
SqlCommand sqlcmd = new SqlCommand(deletesqlquery, sqlconn); sqlconn.Open();
sqlcmd.ExecuteNonQuery();
sqlconn.Close(); // Build A Connection To Excel Data Source And Execute The Command
OleDbConnection oledbconn = new OleDbConnection(excelconnectionstring);
OleDbCommand oledbcmd = new OleDbCommand(exceldataquery, oledbconn);
oledbconn.Open();
OleDbDataReader dr = oledbcmd.ExecuteReader(); // Connect To SQL Server DB And Perform a Bulk Copy Operation
SqlBulkCopy bulkcopy = new SqlBulkCopy(sqlconnectionstring); // Provide Excel To Table Column Mapping If Any Difference In Name
bulkcopy.ColumnMappings.Add("FirstName", "FirstName");
bulkcopy.ColumnMappings.Add("LastName", "LastName");
bulkcopy.ColumnMappings.Add("Department", "Department");
bulkcopy.ColumnMappings.Add("Gender", "Gender"); // Provide The Table Name For Bulk Copy
bulkcopy.DestinationTableName = TableName; while (dr.Read())
{
bulkcopy.WriteToServer(dr);
} oledbconn.Close();
}
catch (Exception ex)
{
//handle exception
}
}
}
}

http://www.codemog.com/how-to-import-data-from-excel-sheet-into-a-sql-server-database-using-csharp/

基于excel导入数据到ms sql server的更多相关文章

  1. 使用SqlBulkCopy导入数据至MS SQL Server

    原文:使用SqlBulkCopy导入数据至MS SQL Server Insus.NET一直使用表类型来数据入MS SQL Server.参考<存储过程参数为DataTable>http: ...

  2. Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”

    从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...

  3. MS SQL SERVER数据导入MySQL

    1.sql server导出到xls,再导入到mysql中.亲测,单表数据量到百万以后,导出异常,可能由其它原因导致,没细纠.此种方式需要来回倒腾数据,稍繁琐. 2.采用kettle第三方的ETL工具 ...

  4. piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql

    piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql 需要不个mssql的sql文件导入mysql.他们的时间戳格式不同..ms用的是自定义的时 ...

  5. MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

  6. Docker-compose搭建ELK环境并同步MS SQL Server数据

    前言 本文作为学习记录,供大家参考:一次使用阿里云(Aliyun)1核2G centos7.5 云主机搭建Docker下的ELK环境,并导入MS SQL Server的商品数据以供Kibana展示的配 ...

  7. MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

    前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...

  8. elasticsearch与ms sql server数据同步

    MS SQL Server Download Elasticsearch Install Elasticsearch Follow instructions on https://www.elasti ...

  9. 在英文版操作系统中安装的MS SQL server,中文字段无法匹配

    在英文版的操作系统中安装的MS SQL server,会出现中文字段无法被匹配到.其原因在于英文环境下安装的MS SQL server的排序规则不包括中文. 所以解决办法就是更改MS SQL serv ...

随机推荐

  1. PPIO去中心化存储的了解和记录

    目录 介绍 FileCoin P2P技术给去中心化云存储的好处 剩余资源的再次使用 市场竞争会激发民间的智慧 PPIO的2种冗余模式 全副本模式 纠删副本模式 为什么PPIO要设计支付代理节点? 一些 ...

  2. linux压缩相关

    tar命令 tar是打包,即把好多东西放在一个大文件里面,之后再压缩:当然也可以解包 tar的几个参数说明: -c 创建一个新的包 -x 将包里的文件还原出来 -t 显示包内文件的列表 -f 指定要处 ...

  3. maven实战读书笔记(一)

    环境变量设置 MAVEN_HOME:G:\maven-3.2\apache-maven-3.2.5 Path: G:\maven-3.2\apache-maven-3.2.5\bin 其实正确的设置应 ...

  4. Objective-C中,类方法的getter和setter可以用点运算符吗?

    Objective-C中,对象实例property的getter和setter可以使用点运算符来操作,那么类方法的getter和setter可以使用点运算吗? 答案是肯定的. 看如下代码: #impo ...

  5. 团队作业 & alpha最终测试报告

    本次ALPHA版本测试是依据Daily Scrum11.16(http://www.cnblogs.com/newbe/p/4101339.html)分配的任务有序进行的,从11.16~11.23.为 ...

  6. Python学习二

    list  [ ] Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素 classmates = ['Michael', 'Bob', 'Tracy ...

  7. n以内的1的个数

    import java.util.Scanner; public class main { /** * @param args */ public static void main(String[] ...

  8. JS实现前端将数据导出excel

    点击此跳到原文,原文有效果动图. 方法一 将table标签,包括tr.td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但 ...

  9. [并查集] 1118. Birds in Forest (25)

    1118. Birds in Forest (25) Some scientists took pictures of thousands of birds in a forest. Assume t ...

  10. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (一) 配置与测试

    引脚连接说明 与树莓派的连线 NRF24L01 => 树莓派 GND          =>   GND VCC          =>    3.3V CE           = ...