我有一个以下查询来显示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();
}
}
}
答案 0 :(得分:0)
编辑:看到评论后,我注意到了我的错误。我正在假设一个Web应用程序。
您应该使用DataTable
作为数据源,而不是DataSet
。将数据源属性设置为DataSet表集合中的第一个表。
事实上,你可以使用DataSet,但它不是那么简单。但它确实允许用户更改她所看到的表格。
答案 1 :(得分:0)
你可以检查几件事。
您确定此表中有条目吗?
尝试注释掉有关OleDbDataAdapter的部分,使用DataReader代替,这样您就可以单步执行并查看是否有行返回。
如果您在datareader中获取行,则可能与您的数据网格设置有关。你在使用自动生成列吗?如果没有,列是否设置正确?
答案 2 :(得分:0)
而不是:
dataGridView1.DataSource = ds;
试试这个:
dataGridView1.DataSource = ds.Tables[0];