开发环境 vs2010 myConn.Open();打不开  是什么问题   如果用vs2005是没有问题的下面是将excel 数据导入系统 
        public DataSet ReadFromExcelToDataSet(string fileName, string tableName)
        {
            string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + fileName + "';Extended Properties='Excel 8.0;IMEX=1'";
            OleDbConnection myConn = new OleDbConnection(strCon);
            myConn.Open();
            string strCom = " SELECT * FROM [" + tableName + "$] ";
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
            DataSet myDataSet = new DataSet();
            myCommand.Fill(myDataSet, "[" + tableName + "$]");
            myConn.Close();
            return myDataSet;
        }

解决方案 »

  1.   

    filename有问题吧 看看路径
      

  2.   

    请问下 是与VS的版本有关 还是与excel 的版本有关联
      

  3.   

    你在open()那打个断点看一下呗
      

  4.   


                string fileName = "";
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    fileName = openFileDialog1.FileName;
                }
                else
                {
                    return;
                }
     应该没有问题的  在vs2005上面可以读到数据的
      

  5.   

    对 就是open() 打开不了 出问题
      

  6.   

    string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + fileName + "';Extended Properties='Excel 8.0;IMEX=1'";
    去掉引号试试另一种方法:string strCon = " Provider = Microsoft.Ace.OLEDB.12.0; Data Source = " + fileName + ";Extended Properties=Excel 12.0;";
      

  7.   

    同样的代码 在vs2005可以跑的 vs2010 有问题
      

  8.   

    首先用OleDbDataAdapter 这种类型,无需open、close,vs2010  下有这个excel文件吗,这个方法没错。
      

  9.   


    试过了 好像不行 Excel 12.0
      

  10.   

    string strCon = " Provider = Microsoft.Ace.OLEDB.12.0; Data Source = " + fileName + ";Extended Properties=Excel 12.0;";
    这种应该可以吧
      

  11.   

    文件是有的 不要open()和close()??
      

  12.   

    谢大家帮忙 是excel 版本的问题 ok了