ADO.NET下把EXCEL看成数据库读取的?

解决方案 »

  1.   

    不是。  是读取Excel 的数据到数据库
      

  2.   

    execl数据库是可以直接调用sql的转换接口来实现数据的转换。
      

  3.   

    我是通过读取Excel表格的值到DataSet 然后在插入到数据库的。  你说的直接调用Sql的转换接口是什么来着.
      

  4.   

    我做过先把Excel里面的东西读到Dataset里面然后再使用 
    可以读出文本数据的啊 
    楼主可以参考我以前写的一个Excel通用类http://blog.csdn.net/xuenzhen123/archive/2009/10/22/4713019.aspx
      

  5.   

    设置  Excel 列 单元格式 为 文本
      

  6.   

    Excel通过扫描数据的前几行来推测数据类型,默认的是8行,如果Excel推测得不正确,就可能出现你说的错误现象。可以通过连接串中的IMEX=1和MaxScanRows来解决这个问题。
    参考:
    http://support.microsoft.com/kb/257819/
      

  7.   

    我按照参考的方法以前就试过了, 报什么找不到可安装的ISAM 。  我修改注册表路径。注册DLL文件,都做了,但是还是报这个错误。我晕啊!!  
    请教高手指点哈》
      

  8.   

    在注册表里改 TypeGuessRows 的方法也试过了?
    你是不是要重新再多做一遍测试,仔细检查下,操作有没有错误?因为你看到的错误提示很奇怪,好像很这个问题没有什么关系,请double check, triple check...如果实在不行,还有一个比较丑陋的方法:
    在你的Excel的第一行数据全部填入"aasdadsa"这样的数据,强迫excel把所有的列都识别为文本类型,读进datatable以后,再删掉这个无效的第一行。。
      

  9.   

    修改  TypeGuessRows  ? 我没有修改,  我修改了连接字符串后面加 IMEX=1;  就已经全部识别为文本类型了,现在是报  ‘找不到ISAM’  ,我修改注册表路径。注册DLL文件都做了,但是还是不行。求解决方法
      

  10.   

    http://support.microsoft.com/kb/150494
    这个问题和本贴讨论的不是一个问题,楼主再另外开贴
      

  11.   

    TypeGuessRows = Text 注册表的值,  MaxScanRows = 8 注册表值    ,连接字符串后加了IMEX = 1
    读取出来  不为空了,                    确变成了十六进制数据
      

  12.   

    乱,我觉得你的问题应该不是文本格式的问题,先仔细查下代码吧!另外,TypeGuessRows 是 DWORD型的,不能填"Text"
      

  13.   

    ImportMixedTypes  是这个填的Text    
      

  14.   

    那就再加上 TypeGuessRows = 0
      

  15.   

     //通过Imex=1来把混合型作为文本型读取,避免null值
                    string strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + strExcelFileName + ";Extended Properties='Excel 8.0;IMEX=1'";//郑创建20100927