SQL查询运行,但不生成任何结果

时间:2013-05-09 13:46:57

标签: c# sql winforms

我有一个以下查询来显示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();
        }
    }
}

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

你可以检查几件事。

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

  2. 尝试注释掉有关OleDbDataAdapter的部分,使用DataReader代替,这样您就可以单步执行并查看是否有行返回。

  3. 如果您在datareader中获取行,则可能与您的数据网格设置有关。你在使用自动生成列吗?如果没有,列是否设置正确?

答案 2 :(得分:0)

而不是:

dataGridView1.DataSource = ds;

试试这个:

dataGridView1.DataSource = ds.Tables[0];