用VS2008 C#写的程序,这句功能是将ACCESS的数据直接插入到SQL2005中的一个表,结构相同。cmd = new SqlCommand("INSERT INTO TEMP1 SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','" + MDB文件名 + "';'admin';'',"表名")", netcon);  
cmd.ExecuteNonQuery();问题在于,我在自己的机器上做的,WIN7+VS2008+SQL2005,运行一切正常。
然后拿到客户那就出问题了,我帮客户新装的WIN2003+SQL2005。总是提示 对象名“TEMP1”无效。这个表是有的,而且在我的电脑上也运行正常。
试了很多办法都不行,对照了下我电脑上和客户电脑上的SQL2005配置也一样,数据库也是同一个备份出来的,一直找不出原因,请高手帮忙看看怎么解决这个问题啊。程序应该没问题,因为在我的机器上运行正常的。在线等——谢谢啦!!

解决方案 »

  1.   

    试过了,没有用,我前面加了dbo.也还是没用,还是报:对象名"dbo.temp1"无效,在我自己机上就好的。不知道是哪里出问题了,两台机的SQL2005也都是装的SP4
      

  2.   

    再加上databasename试试 , dbname.schema.tablename
      

  3.   

    问题是解决了:
    我对照了所有的软件设置,就发现我的电脑上是WIN7的ACE.OLEDB.14,另一台是OLEDB.12,其它都一样,然后将原来的Microsoft.ACE.OLEDB.12.0的驱动升级成Microsoft.ACE.OLEDB.14.0就好了,但还是不知道是为什么?
    谢谢大家,如果也有跟我遇到这样的问题的朋友也可以试下!
      

  4.   

    OFFICE 2007应该只需要12.0吧