本帖最后由 fckycc 于 2011-07-06 19:44:02 编辑

解决方案 »

  1.   

    关于syscolumns 的错误msdn的解释:
     http://support.microsoft.com/kb/281093/zh-cn
      

  2.   

    我用select name from syscolumns where id=(select max(id) from syscolumns where name='表名')  在SQL2008中查询 是对的 能查出某张表的全部列名的  但是到上面我把它放在 用来查询 EXCEL文件的  '[Sheet1$]'  表的 列名的时候它会报syscolumns 错误
      

  3.   

    Microsoft Access 数据库引擎找不到对象“syscolumns”。请确保该对象存在,并正确拼写其名称和路径名。如果“syscolumns”不是本地对象,请检查网络连接或与服务器管理员联系。  OleDbDataAdapter odda = new OleDbDataAdapter("SELECT name FROM syscolumns WHERE id = object_id('[Sheet1$]')", conn);里面的SELECT语句会报 上面的错误 在SQL2008中 是能够查询的 那位帮我搞定下 谢谢了
      

  4.   

    你是需要所有列都有的话,只检查excel列名一次就够了;如果是要所有列名都有而且所有列都必须有值就需要在循环中检查每列的值不能为空!
      

  5.   

    我需要 查找出列名就行不用里面的内容 先检查出列名  与SQL表对比判断如果成立 那在读出EXCEL的数据插入数据库  现在关键是我查找不出EXCEL的所有列名,哪位朋友能帮下 解决下 谢谢了
      

  6.   

    excel的列名,在导入读取时,已经是datatable的列名。你直接取table的列名吧。
    excel文件不是数据库的,不能把数据库的处理办法直接搬来用。
      

  7.   

      实在不好意思我没有说清楚 上面的 EXCEL我是运用了ACCESS数据库的查询方式不是用的SQL   syscolumns 不能运用到ACCESS中的
      

  8.   

    zhangxf925  朋友  不好意思 刚刚我没有看到你的贴 嗯 我去试试
      

  9.   

     string a = ds1.Tables[0].Columns[1].ToString();   我晕了  这么简单的一个东西 弄了 这么久  真是谢谢  zhangxf925  的提醒