本帖最后由 liangchengfck1 于 2012-11-19 13:46:02 编辑

解决方案 »

  1.   

    ok 来结贴吧
    还是靠自己管用
    运行脚本前先删除文件再创建文件然后给了列名再循环插入就ok了
    不删除了 不删除了 人都死了 这个问题……其实我也懒 没办法各位大哥都不帮我
    小弟只能自己用笨方法解决了 哎 坑爹啊
      

  2.   

    string sql2 = "delete table [Sheet1$] where user_name=4 "; 
    -->
    string sql2 = "delete from [Sheet1$] where user_name=4 "; 
      

  3.   

     
    fileinfo这个类
    用了一下ok 结了吧
    在E盘存了空的excel 只有列 然后
     FileInfo feinfo = new FileInfo("e:/USBNotPermission.xls");
                feinfo.CopyTo("d:/USBNotPermission.xls", true);
    每次替换 那连接数据库的excle就是空的 这样不用删除了
    可是为什么删除不行了
    加不加table关键字都一样
      

  4.   

    delete table [Sheet1$]语法都是错的,怎么可能一样?
    正确的写法应该是:delete from [Sheet1$]
    如果还删不掉,说明有引用,公式?或者权限。
    可以把错误发出来看一看。
      

  5.   

    delete from [Sheet1$] 好像也试过 我再试试 顺便把错误图给你看看
      

  6.   

      con.Open();
                string sql2 = "delete from [Sheet1$]";
                OdbcCommand cmd2 = new OdbcCommand(sql2, con);
                result = cmd2.ExecuteNonQuery();            if (result > 0)
                    Console.WriteLine("delete success");
                else
                    Console.WriteLine("delete file");ERROR [HY000] [Microsoft][ODBC Excel 驱动程序] 该 ISAM 不支持在链接表中删除数据。
      

  7.   

    http://blog.csdn.net/tennychen/article/details/6332042
      

  8.   

    看了很纠结
    UPDATE sheet1$ SET NAME = NULL, DeptName= NULL WHERE DeptId !=‘写一个不存在的值 这样应该能全部情况了吧’
    下面的更纠结
    1、中转删除法(物理删除)
        通过MSSQL的一个语法将EXCEL数据导入到一个MSSQL中一个表里,然后直接操作MSSQL删除表中的某些你要删除的行。再将原EXCEL文件删除或改名,然后从MSSQL的那个表中将数据导出为原EXCEL文件名。
    插入到mysql>delete>在导出
    我这样写的
    FileInfo feinfo = new FileInfo("e:/USBNotPermission.xls");
                feinfo.CopyTo("d:/USBNotPermission.xls", true);
    E盘是一个空的excel只有一列 那就是列名 username hostname domainname
    每次替换d盘的excle 这样每次运行前先提花在插入就不要删除了 呵呵
    原来Excel不支持删除,DELETE FROM sheet1$ 报错“该 ISAM 不支持在链接表中删除数据”。因为Excel工作表中的行与真正的关系型数据库的行是有些不一样的,所以如果通过编程来访问Excel工作表的数据,那么检索,插入,更新应该是没有问题的,但要是删除的话,就会有一些限制。删除 Excel 数据时,受到的限制要比从关系数据源中删除数据时更多。在关系数据库中,“行”除了表示一条“记录”外没有其他意义;但在 Excel 工作表中却不同。可以删除字段(单元格)中的值,但不能:
    1、 一次删除一整条记录,否则将出现以下错误信息:
    Deleting data in a linked table is not supported by this ISAM.
    只能通过分别清空各个字段的内容来删除一条记录。
    2、 删除包含 Excel 公式的单元格中的值,否则将出现以下错误信息:
    Operation is not allowed in this context.
    3、 虽然电子表格中已被删除的数据原来所在的行现在是空行,但无法将其删除,而且记录集将继续显示对应于这些空行的空记录。
    针对这个问题,通常简单的做法就是清空字段的值,类似这样的写法:
    UPDATE sheet1$ SET NAME = NULL, DeptName= NULL WHERE DeptId = 1;
    当然,你要知道的是,这一行并没有真正删除掉,所以通常在select的时候要进行一定的筛选,例如:SELECT * FROM sheet1$ WHERE DeptId IS NOT NULL;
    备注:
    1、中转删除法(物理删除)
        通过MSSQL的一个语法将EXCEL数据导入到一个MSSQL中一个表里,然后直接操作MSSQL删除表中的某些你要删除的行。再将原EXCEL文件删除或改名,然后从MSSQL的那个表中将数据导出为原EXCEL文件名。