VS 2015:获得"异常抛出:' System.Data.OleDb.OleDbException'在System.Data.dll"尝试连接到Excel时

时间:2016-01-07 21:52:39

标签: c# ado.net visual-studio-2015 oledb oledbexception

好的,这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace DisplayingDataFromExcelSheets
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string datasource = @"C:\Users\E180728\Documents\FakeGradesTable.xlsx";
            string cs = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + datasource + ";Extended Properties='Excel 12.0;HDR=YES'";
            OleDbConnection cn = new OleDbConnection(cs);
            Console.WriteLine("Connecting to: " + cs);
            OleDbDataAdapter da = new OleDbDataAdapter("select * from [marks$]", cn);
            DataSet ds = new DataSet();
            da.Fill(ds, "marks");
            dataGridView1.DataSource = ds.Tables[0];

        }
    }
}

当我尝试运行此代码时,表单会显示一个空白的DataGridView,并在输出中显示以下内容:

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ mscorlib \ v4.0_4.0.0.0__b77a5c561934e089 \ mscorlib.dll'。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ assembly \ GAC_MSIL \ Microsoft.VisualStudio.HostingProcess.Utilities \ 14.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.HostingProcess.Utilities.dll&# 39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Windows.Forms \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Windows.Forms的.dll&#39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。 ' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System \ v4.0_4.0.0.0__b77a5c561934e089 \ System.dll'。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Drawing \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Drawing.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ assembly \ GAC_MSIL \ Microsoft.VisualStudio.HostingProcess.Utilities.Sync \ 14.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.HostingProcess.Utilities。 Sync.dll&#39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ assembly \ GAC_MSIL \ Microsoft.VisualStudio.Debugger.Runtime \ 14.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.Debugger.Runtime.dll&# 39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ Users \ E180728 \ Documents \ Visual Studio 2015 \ Projects \ ADOProject \ ShowingDataFromExcelSheets \ bin \ Debug \ ShowingDataFromExcelSheets.vshost.exe'。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Core \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Core.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Xml.Linq \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Xml.Linq的.dll&#39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Data.DataSetExtensions \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Data.DataSetExtensions的.dll&#39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ Microsoft.CSharp \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ Microsoft.CSharp.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ System.Data \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Data.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Deployment \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Deployment.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Net.Http \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Net.Http的.dll&#39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Xml \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Xml.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

线程0x3218已退出,代码为0(0x0)。 线程0x2b8c已退出,代码为0(0x0)。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ Users \ E180728 \ Documents \ Visual Studio 2015 \ Projects \ ADOProject \ ShowingDataFromExcelSheets \ bin \ Debug \ ShowingDataFromExcelSheets.exe'。符号已加载。

运行应用程序

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Configuration \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Configuration.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ System.Transactions \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Transactions.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

连接到:Provider = Microsoft.ACE.OLEDB.12.0;数据源= C:\ Users \ E180728 \ Documents \ FakeGradesTable.xlsx;扩展属性=' Excel 12.0; HDR = YES' ' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ System.EnterpriseServices \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.EnterpriseServices.dll&#39 ;。跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

' DisplayingDataFromExcelSheets.vshost.exe' (CLR v4.0.30319:ShowingDataFromExcelSheets.vshost.exe):已加载' C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ System.EnterpriseServices \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.EnterpriseServices.Wrapper.dll& #39 ;.跳过加载符号。模块已经过优化,调试器选项“Just My Code'已启用。

抛出异常:' System.Data.OleDb.OleDbException'在System.Data.dll

我正在运行Visual Studio 2015.该文件是在Excel 2010中构建的.Office和VS 2015都是x64笔记本电脑上的x64版本。任何想法可能会发生在这里?

1 个答案:

答案 0 :(得分:0)

我明白了。请参阅我对解决方案的最后评论。我通过将代码添加到按钮而不是表单加载来发现错误。它显示我的工作表名称在excel文件中是错误的。更新它,它工作得很好。感谢所有帮助人员!