各位:
    我现在一个EXCEL表的内容格式如下:
      (A)                                           关于*********的报表         (B)                     序号           作者         图书名称             价格       
                                    1               SDFSD         SDFSDFS             55 
                                    2               FSDFS           DFSDF                 66 
现在我用以下语句将内容导入到ACCESS中:
 insert into table1(序号,作者,图书名称,价格) select 序号,作者,图书名称,价格 from [excel8.0;HDR=NO;IMEX=1;database=c:\aa.xls].[sheet1$] 
时出错,要求输入参数值,我知道这是由于EXCEL表中有(A)的部份,如何用此语句实现从(B)部份导入呢???如果将EXCEL表中的(A)部份删除,导入没有问题...请各位老大指点....谢谢!!!

解决方案 »

  1.   

    1.关于*********的报表  在表中在加一列作为标题。
    2.如果只要B部分的话,那就是将整行删除。只导入B列。。上面说把A部分删除就可以。那就在导入Acces的时候,将这列删除,还是要看你需要不需要A部分
      

  2.   

    不需要A部份.不过要先删除源表的A部份,岂不是太麻烦...如果有100张表呢???现在所要的就是想通过这种SQL语句来实现只要将B部份的数据导入到ACCESS里....
      

  3.   

    把B部分设为命名区域,比如"TableB"然后改为[excel8.0;HDR=NO;IMEX=1;database=c:\aa.xls].[TableB]试试
      

  4.   

    先读取excel到dataset,遍历dataset再写入数据库。dataset写入数据库的SQL语句是
    insert into 表(序号,作者,图书名称,价格) values ('"+ds.table[0].rows[i][0]+"','"+ds.table[0].rows[i][1]+"','"+ds.table[0].rows[i][2]+"','"+ds.table[0].rows[i][3]+"')遍历过程(我只会oracle数据库,你可以自己改)
    定义数据库连接conn;
    for(int i=0;i<ds.table[0].rows.count;i++)
    {
         string sql = "上面的SQL语句";
          OracleCommand cmd = new OracleCommand(sql, conn);
         cmd.ExecuteNonQuery();}
      

  5.   

    楼上的:EXCLE里前面的A部分怎么处理呢?
      

  6.   

    [excel8.0;HDR=NO;IMEX=1;database=c:\aa.xls].[sheet1$]  请教,这是啥用法,能这样导入SQLServer吗?
    使用这样的语法有什么要求?比如要引入什么库什么的
      

  7.   

    2L说了啊,HDR=Yes,这个会自动去掉第一行。因为有些excel从数据库导出的时候会在第一行保留列名。excel全是数据,没表头,就直接用HDR=No
      

  8.   

    A部分不是只有一行呀。。还有也只是想保留B部分的 “序号 作者 图书名称 价格”。我已经用HDR=YES试过了,仍然不行。你也可以试试!!!