我使用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"
例子:有个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"
借助Datagrid,先浏览信息.然后逐条导入到mdb文件中和你的差不多.
CREATE PROCEDURE [dbo].[Test]
@strExcelPath NVARCHAR(3000)=N'',--要导入的EXCEL文件路径
@strSheetName NVARCHAR(100)=N'',--要导入的工作表名ASSET NOCOUNT ONDECLARE @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 @SQLIF @@ERROR>0 ROLLBACK TRAN
COMMIT TRAN
------------------------------------------------------2、VB中直接执行这个存储过程即可Dim cd As ADODB.CommandSet cd = New ADODB.Command
cd.CommandText = "Test"
cd.CommandType = adCmdStoredProc
cd.CommandTimeout = 0
Set cd.ActiveConnection = g_Cnncd.Parameters("@strExcelPath").Value = strExcelPath 'EXCEL文件路径
cd.Parameters("@strSheetName").Value = strSheetName '工作表名g_Cnn.Errors.Clear
cd.Execute-----------------------------------------------------------这样做,一方面把要导入的EXCEL做成变量,灵话性好;另一方面,不用通过应用程序,而是直接将数据导入SQL,速度超快。我们做过类似的程序,比这还要复杂的,几十万条数据,不但要导入,而且还要分别处理,但也在几分钟内全部搞定。
是什么意思,程序运行到这一步就报错。