其他设备上的数据源文件夹

我们将数据存储在Excel文件(Trail_Test.xls)中,该文件存储在C#项目的Resources文件夹中。 现在我们需要将数据从xls文件加载到windows窗体应用程序的dataGridView中。

这是我们使用的代码

System.Data.OleDb.OleDbConnection MyConnection; System.Data.DataSet DtSet; System.Data.OleDb.OleDbDataAdapter MyCommand; string path = System.AppDomain.CurrentDomain.BaseDirectory + @"Resources\Trail_Test.xls"; MyConnection = new System.Data.OleDb.OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + path + "';Extended Properties=Excel 8.0;"); MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [20$]", MyConnection); DtSet = new System.Data.DataSet(); MyCommand.Fill(DtSet); dataGridView1.Columns.Clear(); dataGridView1.DataSource = DtSet.Tables[0]; 

这在第八行给出了一个错误:

Microsoft Jet数据库引擎找不到对象“20 $”。 确保对象存在,并且正确拼写其名称和path名称。

任何帮助?

谢谢

path必须相对于可执行文件。 例如,如果可执行文件在

 C:\Users\Adham\Documents\Visual Studio 2010\Projects\Curve Fitting\Curve Fitting\ 

那么.xls文件的path将是

 string path = System.AppDomain.CurrentDomain.BaseDirectory + @"Resources\Trail_Test.xls"; string connectionString = @"provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + path + "';Extended Properties=Excel 8.0;" 

您的MyConnection对象包括

Data Source ='C:\ Users \ Adham \ Documents \ Visual Studio 2010 \ Projects \ Curve Fitting \ Curve Fitting \ Resources \ Trail_Test.xls

看起来像不应该硬编码的东西,并会导致任何其他计算机上执行,但Adham的问题。

试试这个:确保文件被标记为“复制到输出目录=复制如果更新”,只需右键点击它,看到“属性”

你应该到达安装文件夹。 这将取决于你的项目types。 有一个答案,以达到资源文件夹的AC#项目

https://stackoverflow.com/a/27182028/3209523