请教VB一下:
    有一个EXECL,有一个SQL SERVER中的表,如何通过VB把excel中的数据,用insert语句插入到sql
server的表中。不要用SQL SERVER的导入功能。
比如:test.xls中有字段a,b,c,d
a  b  c  d
1  a  a  a
2  a  a  a
3  a  a  a
sql server表test中有a,b,c,d
如何通过VB把test.xls中的数据用insert逐行插入到表test中
谢谢!!!

解决方案 »

  1.   

    调用ADO,将EXCEL和SQL分别做成两个数据集,然后可以直接用语句在数据集之间交换数据
      

  2.   

    可以写点例子吗?
    比如,rs1,rs2
    怎么运用insert???
      

  3.   

    可以先引用EXCEL对象,再读取EXCEL中数据,然后INSERT进SQL数据库
      

  4.   

    哥哥们,这些我都知道啊,只是insert时候的值我怎么一行行取啊!
      

  5.   

    呵呵,忘记给个代码了,给你参考一下
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim str As String
    Dim cn1 As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs1 As New ADODB.Recordsetcn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;DataSource=EXCEL文件名.xls;Extended Properties='Excel 8.0;HDR=Yes'"
    cn.Open
    rs.Open "select * from [EXCEL工作表名$]", cn, adOpenKeyset, adLockOptimistic
    str = "Driver={SQL Server};Server=数据库服务器名;DataBase=数据库;UID=登陆用户;PWD=密码;"                              
    cn1.Open str
    rs1.Open "select * from 数据库表名", cn1, adOpenKeyset, adLockOptimisticcmd.CommandText = "delete from 数据库表名 "               '清空原数据表
    cn1.Execute cmd.CommandTextFor j = 1 To rs.RecordCount
    If rs.EOF = True Then
    Exit Sub
    Else
    rs1.AddNew
    For i = 0 To rs.Fields.Count - 1
     rs1.Fields(i) = rs.Fields(i)
    Next i
    rs1.Update
    rs.MoveNext
    End If
    Next j
    cn.Close
    cn1.Close
    必须将EXCEL表放在程序的同一目录下!
    数据库中要使用的数据表的数据项要和EXCEL表中的一样!
      

  6.   

    谢谢。
    不过可以再问一个不入门的问题,可以用insert来操作吗?
      

  7.   

    因为我数据表中的字段比EXCEL中的多
      

  8.   

    其实insert用来操作批量插入比较好,也比较快,如果是数据表中字段多,那更应该用select了,这样不容易出错
      

  9.   

    UP------------------------------------------------
    有尝聘用版主:) 有兴趣的来看看
    www.dvpx.com 论坛首页公告MSN:[email protected]