简体   繁体   中英

How to resolve OLE DB provider Microsoft ACE OLEDB 12.0 for linked server (null) error?

I am receiving the following error when uploading an Excel file to insert columns into DB.

OLE DB provider Microsoft ACE OLEDB 12.0 for linked server (null)

First, I choose an Excel File then I put the name of the table which will get columns of my Excel file and finally, when I click on the button save, I get that error.

My web.config :

<appSettings>
    <add key="FolderPath" value="~/Files/" />
</appSettings>
<connectionStrings>
    <!--Ce qui va nous permettre d'importer des fichiers excel aec le format 2003 et 2007 dans SQL Server-->
    <add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
            Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"/>
    <add name="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
            Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"/>
    <!--Ce qui va nous permettre de se connecter à la base de données-->
    <add name="connexionBase" providerName="System.Data.SqlClient" connectionString="server=localhost;database=projetDGCS;uid=sa;pwd=dgcs9876" />
  </connectionStrings>
  <system.web>

My code behind :

protected void btnSave_Click(object sender, EventArgs e)
{
    string FileName = lblFileName.Text;
    string Extension = Path.GetExtension(FileName);
    string FolderPath = Server.MapPath(ConfigurationManager.AppSettings["FolderPath"]);
    string CommandText = "";
    switch (Extension)
    {
        case ".xls": //Excel 97-03
            CommandText = "spx_ImportFromExcel03";
            break;
        case ".xlsx": //Excel 07
            CommandText = "spx_ImportFromExcel07";
            break;
    }
    //Read Excel Sheet using Stored Procedure
    //And import the data into Database Table
    String strConnString = ConfigurationManager.ConnectionStrings["connexionBase"].ConnectionString;
    SqlConnection con = new SqlConnection(strConnString);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = CommandText;
    cmd.Parameters.Add("@SheetName", SqlDbType.VarChar).Value =
                       ddlSheets.SelectedItem.Text;
    cmd.Parameters.Add("@FilePath", SqlDbType.VarChar).Value =
                       FolderPath + FileName;
    cmd.Parameters.Add("@HDR", SqlDbType.VarChar).Value =
                       rbHDR.SelectedItem.Text;
    cmd.Parameters.Add("@TableName", SqlDbType.VarChar).Value =
                       txtTable.Text;
    cmd.Connection = con;
    try
    {
        con.Open();
        object count = cmd.ExecuteNonQuery();
        lblMessage.ForeColor = System.Drawing.Color.Green;
        lblMessage.Text = count.ToString() + " records inserted.";
    }
    catch (Exception ex)
    {
        lblMessage.ForeColor = System.Drawing.Color.Red;
        lblMessage.Text = ex.Message;
    }
    finally
    {
        con.Close();
        con.Dispose();
        Panel1.Visible = true;
        Panel2.Visible = false;
    }
}
System.Data.OleDb.OleDbConnection myconnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" 
      + filepathofexcel `enter code here`+ "';Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'");

myconnection.Open();
string st = "select * from [" + SheetName + "]";
System.Data.OleDb.OleDbDataAdapter mycmd = new System.Data.OleDb.OleDbDataAdapter(st, myconnection);

mycmd.TableMappings.Add("Table", "TestTable");
mycmd.Fill(ds);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM