SQL查询运行,但没有产生任何结果
我有一个以下查询来显示在dataGridView中的学生数据,但它doest似乎显示任何记录。我的代码:SQL查询运行,但没有产生任何结果
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();
}
}
}
编辑:看到评论后,我发现我的错误。我假设一个Web应用程序。
您应该使用DataTable
作为数据源,而不是DataSet
。将数据源属性设置为DataSet表集合中的第一个表。
实际上,你可以使用一个DataSet,但它并不那么简单。但它允许用户更改她所看到的表格。
似乎不起作用:/ 'System.Windows。 Forms.DataGridView'不包含'DataBind'的定义 – jaspernorth 2013-05-09 13:50:46
你是完全正确的!这现在的作品,非常感谢 – jaspernorth 2013-05-09 13:56:23
无法相信一个接受的答案,downvote。 @jaspernorth:如果有帮助,请接受这个答案。 – shahkalpesh 2013-05-09 14:04:40
几件你可以检查的东西。
您确定您在此表中有条目吗?
尝试注释掉有关OleDbDataAdapter的部分,改为使用DataReader,以便可以逐步查看是否有行正在返回。
如果你在你的datareader中获取行,那么它可能与你的datagrid设置有关。你在使用自动生成列吗?如果不是,列是否设置正确?
相反的:
dataGridView1.DataSource = ds;
试试这个:
dataGridView1.DataSource = ds.Tables[0];
谢谢,也很有用 – jaspernorth 2013-05-09 14:04:50
一些建议:使用try和catch块,这样,如果查询失败,您可以关闭您的连接(它可以这样做的你不能控制的原因)。 – Renan 2013-05-09 13:52:04
很明显,但要确保你打的是正确的文件,并且它在学生表中有数据。 – Tony 2013-05-09 13:53:39
这是正确的文件,我确信它里面有一些数据。 – jaspernorth 2013-05-09 13:54:57