从C#查询Excel文件 - 没有结果

时间:2013-10-08 04:48:22

标签: c# excel ado.net oledb

我一直在尝试使用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();
    }

有谁知道为什么没有结果?

谢谢,

2 个答案:

答案 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