0

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

有谁知道为什么这没有返回结果?

谢谢,

4

2 回答 2

0

显然,在数据绑定过程中必须引用特定的数据表。在 fill() 方法后添加以下行解决了该问题。

        da.Fill(ds);
        dgsResults.DataSource = ds.Tables[0]; //this is the line to be added
于 2013-10-13T05:05:08.407 回答
0

您在 connStr 中使用 strFileName 但尚未提供路径。

应遵循以下原则:

string strFileName = @"c:\excel location\playerData.xls";
于 2013-10-08T04:56:42.830 回答