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

时间:2016-08-01 17:35:57

标签: c# excel datagridview

我们将数据存储在Excel文件(Trail_Test.xls)中,该文件存储在C#项目的Resources文件夹中。 现在我们需要在我们拥有的Windows窗体应用程序中将xls文件中的数据加载到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];

这会在第8行产生错误:

Microsoft Jet数据库引擎无法找到对象' 20 $'。确保对象存在,并且您正确拼写其名称和路径名称。

任何帮助??

感谢

4 个答案:

答案 0 :(得分:2)

您的MyConnection对象包含

  

数据源='C:\ Users \ Adham \ Documents \ Visual Studio 2010 \ Projects \ Curve Fitting \ Curve Fitting \ Resources \ Trail_Test.xls

看起来像是不应该被硬编码的东西,并且在任何其他计算机上执行时会引起问题,但是Adham的。

答案 1 :(得分:2)

路径必须相对于可执行文件。例如,如果可执行文件位于

$fb = new Facebook\Facebook([
      'app_id' => '{app-id}', // Replace {app-id} with your app id
      'app_secret' => '{app-secret}',
      'default_graph_version' => 'v2.7',
      ]);

    $helper = $fb->getRedirectLoginHelper();

    $permissions = ['email','publish_actions','user_birthday']; // Here you add as much permissions as you like
    $loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);

然后.xls文件的路径将是

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

答案 2 :(得分:1)

尝试这样做:确保文件标记为“复制到输出目录=复制如果更新”,只需右键单击它并查看“属性”

答案 3 :(得分:0)

您应该到达安装文件夹。这取决于您的项目类型。有一个答案可以到达c#项目的资源文件夹

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