在VB中如何实现将Excel表格数据导入SQL Server数据库表中?例如有一张Excel的成绩表,包括学号、姓名、成绩等字段,在 SQL Server数据库有同样字段的一张表,如何用vb代码实现数据的导入/导出?

解决方案 »

  1.   

    dbs.Execute "SELECT * INTO [Excel 8.0;DATABASE=" & App.Path & "\MyExcel.xls].[WorkSheet1] " _
            & "FROM [在校学生] WHERE " & DataGrid1.Columns(DataGrid1.Col).Caption & "='" & Trim(DataGrid1.Text) & "'"
        dbs.Close
    例子很多http://expert.csdn.net/Expert/topic/2952/2952618.xml?temp=.1663477
      

  2.   


    SELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=ServerName;User ID=MyUID;Password=MyPass'
             ).Northwind.dbo.Categories&
    Categories为excel的sheet名字
    还要注意后面一定要加上&
      

  3.   

    谢谢楼上的
    我希望用一个对话框打开excel文件,点确定后自动导入数据库中,sheet的名字是不是用commondialog1.filename ?
      

  4.   

    //** 数据库到excel文件 
    strquery="INSERT INTO [Excel 9.0;Database=c:\r.xls].[$excelsheetname] SELECT * FROM accesstablename从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/
    --如果接受数据导入的表已经存在
    insert into 表 select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)--如果导入数据并生成表
    select * into 表 from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
    /*===================================================================*/
    --如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
    insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
    select * from 表
    --如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:
    --导出表的情况
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out "c:\test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'--导出查询的情况
    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:\test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'说明.c:\test.xls  为导入/导出的Excel文件名.
    sheet1$      为Excel文件的工作表名,一般要加上$才能正常使用.