利用C#将Excel数据导入SQLServer的设计与实现

更新时间:2024-01-10 作者:用户投稿原创标记本站原创 点赞:14536 浏览:60469

【 摘 要 】 在某研发项目中,需要把采集的数据先临时输入Excel文件中,然后导入到SQL Server中进行综合分析处理.文章设计了一个交互性好的数据批量导入程序,方便用户选择Excel文件随时导入.

【 关 键 词】 Excel;SQL Server;数据导入

Design and Implement to Import Data from Excel to SQL Server

Xu Chun-hua

(Weifang Vocational College ShandongWeifang 261041)

【 Abstract 】 In a R&D projects, the data collected need to provisionally input to the Excel file, then import to SQL Server to further prehensive analysis and processing. In this paper, a interactive data batch import program is designed, which facilitates the user to select and import an Excel file to SQL Server at any time.

【 Keywords 】 excel, SQL server, data importing

0 引言

SQL Server是微软公司推出的大型数据库管理系统,市场占有率高,主要用于网络环境,不适合手工直接录入数据.

而Excel也是微软公司的Office办公产品之一,作为电子表格使用非常方便,适合单机采集手工录入数据.在一个科研项目中,需要使用Excel临时保存采集的数据,然后统一导入SQL Server中的某数据库中.下面给出具体的操作步骤.


1.在SQL Server中创建数据库

在SQL Server中创建数据库的方式有三种:第一种是手工建库,效率低下容易出错;第二种是利用存储过程建库;第三种是在程序代码中嵌入SQL指令建库.后两种方式各有利弊,存储过程建库时,表结构容易修改;代码中建库指令经过编译后是不能修改的,此处选择了存储过程建库.

1.1 存储过程建库

将以下内容保存为扩展名为SQL的文件,在Microsoft SQL Server Management Studio中新建查询,执行即可建好数据库.

2.Excel表导入SQL Server指定数据库

将OLEDB读取的Excel数据快速导入到SQL Server中,此前很多通过连接SQL指令片段的方式,容易出错,且效率低下,若是采用OLEDB提供的批量复制的办法,即System.Data.SqlClient.SqlBulkCopy类,速度快,而且代码简单,不必过多考虑字段,扩充性好.下面测试代码导入一个6万多条数据的sheet,导入过程只需要5秒左右.

数据导入程序的设计界面,选中了Excel文件,导入数据库按钮就会起作用.

添加引用必要的命名空间,如System.Data、System.Linq、System.IO、System.Data.SqlClient、using System.Data.Common、System.Data.OleDb.

//自定义命名空间

3.总结

只要通过存储过程提前建好数据库和表,就可以方便地导入Excel中的数据.本代码的优点是,不必考虑在代码中嵌入字段名,无论是多少字段,两者的字段名及数据类型只要保持一致,就能顺利导入.代码在Windows XP/VS.NET 2010/SQL Server 2005/Excel 2003环境下调试通过.

作者简介:

徐春华(1966-),女,硕士,讲师;研究方向:网络数据库.