我使用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"

解决方案 »

  1.   

    http://www.vb110.com/Article/vbtxt/200903/2469.html你看得懂就用吧     这是导入ACCESS的办法    改两个数据就ok
      

  2.   

    我是把sql的数据导入Access
    借助Datagrid,先浏览信息.然后逐条导入到mdb文件中和你的差不多.
      

  3.   

    1、在SQL2005中对应数据库中新建存储过程
    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,速度超快。我们做过类似的程序,比这还要复杂的,几十万条数据,不但要导入,而且还要分别处理,但也在几分钟内全部搞定。
      

  4.   

    请问楼上的,Set cd.ActiveConnection = g_Cnn这句
    是什么意思,程序运行到这一步就报错。