0

我有一个以下查询来在 dataGridView 中显示学生数据,但它似乎根本没有显示任何记录。我的代码:

public void setSQL()
{
    string ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\jasper\\Desktop\\AutoReg\\AutoReg.accdb;";

    OleDbConnection MyConn = new OleDbConnection(ConnStr);
    MyConn.Open();

    DataSet ds = new DataSet();

    //query to ask
    string query = "SELECT * FROM Student";

    using (OleDbCommand command = new OleDbCommand(query, MyConn))
    {
        using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
        {
            adapter.Fill(ds);
            dataGridView1.DataSource = ds;
            MyConn.Close();
        }
    }
}
4

3 回答 3

0

编辑:看到评论后我注意到我的错误。我假设一个Web应用程序。

您应该使用 aDataTable作为数据源,而不是DataSet. 将数据源属性设置为 DataSet 的表集合中的第一个表。

事实上,您可以使用 DataSet,但它并不那么简单。不过,它确实允许用户更改她看到的表格。

于 2013-05-09T13:49:09.203 回答
0

您可以检查几件事。

  1. 您确定您在此表中有条目吗?

  2. 尝试注释掉有关 OleDbDataAdapter 的部分,改用 DataReader,这样您就可以逐步查看是否有返回的行。

  3. 如果您在数据阅读器中获取行,那么它可能与您的数据网格设置有关。您是否使用自动生成列?如果不是,列设置是否正确?

于 2013-05-09T13:58:12.440 回答
0

代替:

dataGridView1.DataSource = ds;

试试这个:

dataGridView1.DataSource = ds.Tables[0];
于 2013-05-09T14:01:57.320 回答