返回首页

您好,

我得到以下错误:

The Microsoft Jet database engine cannot open the file 'D:\AspProject\ExportToExcel\Web\UploadFiles'.  It is already opened exclusively by another user, or you need permission to view its data. 

回答

评论会员:阿赫亚virkar 时间:2012/02/07
我的代码是
{C}打开连接时,我得到上面的错误:Anuja帕瓦尔多尔| |
  string strFileType = System.IO.Path.GetExtension(filepath.ToLower());

                        string sSourceConstr = String.Empty;

 



                        if (strFileType.Trim() == ".xls")

                        {

                            sSourceConstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + filepath + "; Extended Properties=\"Excel 8.0; HDR=Yes; IMEX=2\"";

                        }

                        else if (strFileType.Trim() == ".xlsx")

                        {

                            sSourceConstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" + filepath + "; Extended Properties=\"Excel 12.0; HDR=Yes; IMEX=2\"";

                        }

 



                        string sDestConstr = ConfigurationManager.ConnectionStrings["Class"].ConnectionString;

                        OleDbConnection sSourceConnection = new OleDbConnection(sSourceConstr);

                        using (sSourceConnection)

                        {

                            sSourceConnection.Open();

 

                            string sql = "select * from [" + dr["SheetName"].ToString() + "]"; //"select * from $",sheet

                            OleDbCommand command = new OleDbCommand(sql, sSourceConnection);

 

                            OleDbDataAdapter da = new OleDbDataAdapter();

                            da = new OleDbDataAdapter(command);

                            DataSet ds = new DataSet();

                            da.Fill(ds);

                            if (ds.Tables.Count > 0)

                            {

                                DataTable dt = ds.Tables[0];

                                

                                if (dt.Rows.Count > 0)

                                {

                                    Users objUser = (Users)Session["UserSession"];

                                    string curUser = objUser.UserId;

 

                                    DataColumn dcUser = new DataColumn();

                                    dcUser.ColumnName = "CreatedBy";

                                    dcUser.DefaultValue = curUser;

                                    dt.Columns.Add(dcUser);

 

                                    DataColumn dcCreatedOn = new DataColumn();

                                    dcCreatedOn.ColumnName = "CreatedOn";

                                    dcCreatedOn.DataType = System.Type.GetType("System.DateTime");

                                    dcCreatedOn.DefaultValue = DateTime.Now;

                                    dt.Columns.Add(dcCreatedOn);

 

                                    int newsNo = dt.Rows.Count;

                                    string table = ("ZipUpload"+"_"+dr["SheetName"].ToString().Replace("$",""));

                                    string conString = ConfigurationManager.ConnectionStrings["Class"].ConnectionString;

                                    CommonBase objCommonBase = new CommonBase();

                                    objCommonBase.DeletTableData(table);

 

                                    FileUploadBase objFileUpload = new FileUploadBase();

                                    objFileUpload.BulkInsert(dt, table, conString);

 

                                    lblMessage.Text = "File uploaded successfully!  <br /> No. of Record: " + newsNo + "<br />";

                                    lblMessage.ForeColor = System.Drawing.Color.Green;

使用此我解决我的问题感谢u家伙!阿赫亚virkar:如果您使用的MS Access或MS Excel作为数据库,那么他们有4种类型的选择是
1。打开
2.Open独占
3。打开只读
4.Open只读和专门

当你正在做的修改,插入或删除数据库中的
你应该打开只有在开放模式。

当你在做这些操作,如果你已经打开的DB或任何其他应用程序使用它完全或只读你不能访问它,你会得到这个错误
评论会员:游客 时间:2012/02/07
斯里达尔Patnayak:我很欣赏你的帮助,我面临的问题。我阿拉伯语文本保存到数据库,但会发生什么是问号(?)保存到数据库中。但是,如果我直接粘贴数据到数据库中,我得到了正确的数据到浏览器,我的意思是阿拉伯语