我们将数据存储在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 $'。确保对象存在,并且您正确拼写其名称和路径名称。
任何帮助??
感谢
答案 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#项目的资源文件夹