Microsoft Access数据库引擎找不到对象'Sheet1 $

时间:2014-02-13 14:17:55

标签: c# asp.net ms-access-2007

我将保存在服务器文件夹中的模板excel文件复制到具有不同名称的同一文件夹中。插入值..我能够复制文件,但当我尝试插入值显示表格!$找不到。我已经给出了正确的工作表名称。只有一张工作表被添加到名为sheet1.still的电子表格中它显示错误。我的代码如下所示。关于这个错误的想法。我用谷歌搜索但是要我检查文件夹和工作表名称..只是正确的..请帮助我

        string xxx = "~/temp/" + "Tempfile" + dunsno + DateTime.Today.ToString("dd.MM.yyyy") + ".xlsx";
         DirectoryInfo directoryInfo = new DirectoryInfo(Server.MapPath("~/temp/"));
                            var fileList = directoryInfo.GetFiles();
                            string newFileName = Server.MapPath("~/temp/" + "Tempfile" + dunsno + DateTime.Today.ToString("dd.MM.yyyy") + ".xlsx");
                            foreach (FileInfo fleInfo in fileList     

                       {
                                fleInfo.CopyTo(newFileName, true);
                       }
         string connStr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx;Extended Properties=""Excel 12.0 Xml;HDR=YES""");
         OleDbConnection MyConnection;
                            OleDbCommand MyCommand = new OleDbCommand();
                            MyConnection = new OleDbConnection(@connStr);

                            MyConnection.Open();
                            MyCommand.Connection = MyConnection;
                            string sql = "Insert into [Sheet1$] (id,name) values('3','c')";
                            MyCommand.CommandText = sql;
                            MyCommand.ExecuteNonQuery();
                            MyConnection.Close();

2 个答案:

答案 0 :(得分:3)

替换:

string connStr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx;Extended Properties=""Excel 12.0 Xml;HDR=YES""");

string connStr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES""", newFileName);

答案 1 :(得分:0)

如果仍然出现以下错误,则“ Microsoft Access数据库引擎找不到对象...”,然后是您尝试读取数据的工作表名称,然后尝试[sheetname $]。