C# 访问Excel数据表时出错

C# 访问Excel数据表时出错,c#,excel,C#,Excel,我必须从excel工作表中访问数据,但在将数据(从excel)复制到数据集时遇到问题 try { string strPath = FileName; DataSet ds = new DataSet(); string sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + strPath + "; " + "Extended Properties=Excel 8.0;";

我必须从excel工作表中访问数据,但在将数据(从excel)复制到数据集时遇到问题

try
{
    string strPath = FileName;
    DataSet ds = new DataSet();
    string sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + strPath + "; " + "Extended Properties=Excel 8.0;";

    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    objConn.Open();
    OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [" + TableName + "] ", objConn);
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    objAdapter1.SelectCommand = objCmdSelect;
    objAdapter1.Fill(ds);
    objAdapter1.Dispose();//DEBUGGER SKIP FROM HERE
    objConn.Close();
    return ds.Tables[0];
}
catch (Exception ex)
{
    //Log your exception here.//
    return (DataTable)null;//AND THEN JUMP TO HERE
}

问题是,在调试时,在行
objAdapter1.Fill(ds)之后调试器跳过剩下的一行,当然数据集返回null,请提供帮助。

连接字符串中的扩展属性必须使用双引号。请尝试以下行:

string sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; " +
                           "Data Source=" + strPath + "; " + 
                           "Extended Properties=\"Excel 8.0;\"";

检查异常。将断点保留在Dispose()行,并检查数据集是否正在填充?并检查您正在获取的异常。调试时,在System.Data.dll中获得“exception Trowned:”System.Data.OleDb.OLEDBEException“。我在Dispose()处设置了断点,数据集没有填充,并返回异常“System.NullReferenceException”(我想是因为数据集为空)错误的异常处理。