我一直在尝试使用OLEDB连接从C#查询excel文件。程序运行时没有运行时错误,但它不返回任何结果。我已尝试使用不同的excel文件,但得到了类似的结果。
编辑:excel文件位于项目目录中。如果我从当前位置删除excel文件,程序将获得一个未找到文件的异常。
private void btnRun_Click(object sender, EventArgs e)
{
string strFileName = "playerData.xls";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileName + ";Extended Properties=" + "\"Excel 8.0;HDR=YES\"";
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
dgsResults.DataSource = ds;
conn.Close();
}
有谁知道为什么没有结果?
谢谢,
答案 0 :(得分:0)
您在connStr中使用strFileName但尚未提供该路径。
应该遵循:
string strFileName = @"c:\excel location\playerData.xls";
答案 1 :(得分:0)
显然,必须在数据绑定过程中引用特定数据表。在fill()方法之后添加以下行已解决了该问题。
da.Fill(ds);
dgsResults.DataSource = ds.Tables[0]; //this is the line to be added