当我尝试在SQL中导入Excel电子表格时出现错误

时间:2015-07-30 17:08:02

标签: c# sql excel

以下是我的代码,非常感谢任何帮助

  

:Microsoft Office Access数据库引擎找不到对象' Breach'。确保对象存在,并且您正确拼写其名称和路径名称。

public void importdatafromexcel(string excelfilepath)
{
    string ssqltable = "Testing";

    string myexceldataquery = "select [Case Owner],[Case Number],[Severity] from [Breach]";
    try
    {
        string sexcelconnectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelfilepath + ";Extended Properties=Excel 12.0;";
        string ssqlconnectionstring = "Persist Security Info=False;Integrated Security=true;Initial Catalog=0Breach;server= CHAUDAHARI-J1-W\\SQLEXPRESS";

        string sclearsql = "delete from " + ssqltable;
        SqlConnection sqlconn = new SqlConnection(ssqlconnectionstring);
        SqlCommand sqlcmd = new SqlCommand(sclearsql, sqlconn);
        sqlconn.Open();
        sqlcmd.ExecuteNonQuery();
        sqlconn.Close();

        OleDbConnection oledbconn = new OleDbConnection(sexcelconnectionstring);
        OleDbCommand oledbcmd = new OleDbCommand(myexceldataquery, oledbconn);
        oledbconn.Open();
        OleDbDataReader dr = oledbcmd.ExecuteReader();
        SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring);
        bulkcopy.DestinationTableName = ssqltable;
        while (dr.Read())
        {
            bulkcopy.WriteToServer(dr);
        }

        oledbconn.Close();
    }
    catch (Exception ex)
    {
        txtProcessingStatus.Text = ex.Message;
    }
}

1 个答案:

答案 0 :(得分:0)

select [Case Owner],[Case Number],[Severity] from [Breach]

是否有名为" Breach"的工作表?在Excel文件中你正在打开?在上面的陈述中,我相信[违反]应该是您要打开的Excel文件中要查找的工作表的名称。