ADO控件将EXCEL表导入SQL数据库解决办法

ADO控件将EXCEL表导入SQL数据库
我使用sql 2005数据库,如何使用ADO把excel数据导入sql 的表中
例子:有个excel文件:f:\1.xls,其中有三个字段,正好和表对应
还有个MDB数据库,其中有张“设备信息表”,有字段:姓名,性别,班级
如何将1.xls数据导入1.xls
AOD生成的字符"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password= 123456;Initial Catalog=MDB;Data Source=LICHAO"

------解决方案--------------------
http://www.vb110.com/Article/vbtxt/200903/2469.html

你看得懂就用吧 这是导入ACCESS的办法 改两个数据就ok
------解决方案--------------------
1、在SQL2005中对应数据库中新建存储过程
CREATE PROCEDURE [dbo].[Test]
@strExcelPath NVARCHAR(3000)=N'',--要导入的EXCEL文件路径
@strSheetName NVARCHAR(100)=N'',--要导入的工作表名

AS

SET NOCOUNT ON

DECLARE @SQL NVARCHAR(MAX)

SET @SQL=N'INSERT INTO 表1 (姓名,性别,班级) 
SELECT * FROM OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;IMEX=1;
DATABASE='+@strExcelPath +''',''SELECT 姓名,性别,班级 FROM ['+@strSheetName+N'$]'')'

BEGIN TRAN
EXEC SP_EXECUTESQL @SQL

IF @@ERROR>0 ROLLBACK TRAN
COMMIT TRAN
------------------------------------------------------

2、VB中直接执行这个存储过程即可

Dim cd As ADODB.Command

Set cd = New ADODB.Command
cd.CommandText = "Test"
cd.CommandType = adCmdStoredProc
cd.CommandTimeout = 0
Set cd.ActiveConnection = g_Cnn

cd.Parameters("@strExcelPath").Value = strExcelPath 'EXCEL文件路径
cd.Parameters("@strSheetName").Value = strSheetName '工作表名

g_Cnn.Errors.Clear
cd.Execute

-----------------------

这样做,一方面把要导入的EXCEL做成变量,灵话性好;另一方面,不用通过应用程序,而是直接将数据导入SQL,速度超快。我们做过类似的程序,比这还要复杂的,几十万条数据,不但要导入,而且还要分别处理,但也在几分钟内全部搞定。