Поставщик Microsoft.ACE.OLEDB.12.0 зарегистрирован на локальном компьютере, но продолжает получать эту ошибку - PullRequest
0 голосов
/ 08 апреля 2019

Я знаю, что этот вопрос задавали много, но я не могу найти решение.Я пытаюсь импортировать файл Excel и связать его с aspxgridview.Я установил распространяемый AccessDatabaseEngine_X64.exe на свой локальный компьютер, но продолжаю настаивать на том, что «поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальном компьютере».ниже приведен фрагмент кода.

string connStr = "";
            string ext = Path.GetExtension(fuImportPP.FileName).ToLower();
            string path = Server.MapPath("~/ExcelToGrid/" + fuImportPP.FileName);

            gv = new GridView();

            fuImportPP.SaveAs(path);

            //if (ext.Trim() == ".xls")
            //    //connection string for that file which extantion is .xls  
            //    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
            //else if (ext.Trim() == ".xlsx")
                connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";

            string query = "SELECT * FROM [GridViewExport$]";

            OleDbConnection conn = new OleDbConnection(connStr);

            if (conn.State == ConnectionState.Closed)
                conn.Open();

            OleDbCommand cmd = new OleDbCommand(query, conn); 
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();

            da.Fill(ds);
            gv.DataSource = ds.Tables[0];
            gv.DataBind();
            phGridViewHolder.Controls.Add(gv);
            conn.Close(); 

1 Ответ

2 голосов
/ 08 апреля 2019

Сначала проверьте разрядность вашей офисной установки

Так как вы используете c #, попробуйте перейти в Project> Свойства проекта> Перейдите на вкладку Build> Где он предназначен для платформы> Измените его так, например, если у вас установка Office 32-битная, то измените ее на 32-битную, и если она 64 бит, затем измените его на 64 бит.

После этого сохраните и попробуйте снова запустить проект.

...