繁体   English   中英

如何解决OLE DB访问接口Microsoft ACE OLEDB 12.0对于链接服务器(空)的错误?

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

上传Excel文件以将列插入数据库时​​,我收到以下错误。

OLE DB提供程序用于链接服务器的Microsoft ACE OLEDB 12.0(空)

首先,我选择一个Excel文件,然后输入表名,该表将获取Excel文件的列,最后,当我单击“保存”按钮时,出现该错误。

我的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>

我后面的代码:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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