c#连接sql的oledbdatareader

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:59:01
try
{

OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader dbReader=cmd.ExecuteReader();
while (dbReader.Read()) //有错运行不到里面 直接转到dbReader.Close();
{
label2.Text = dbReader["courseName"].ToString();
}
dbReader.Close();
conn.Close();
}
catch (OleDbException ex)
{
ex.ToString();
}

执行到while (dbReader.Read()) 如果发生异常的话 会直接跳转到catch语句处 而不是dbReader.Close();
所以你这里不是有错误 而是由于你这里的查询没有查询到任何的数据

建议你在数据库系统中执行下你的sql语句 看是否有数据

如果sql语句写的没错(如果怕有错,把弄一个断点,得到sql的值,然后拿去sql分析查询器,看看是不是有结果,如果有的话)
dbReader.Read();应该就为true,所以一定能执行里边while里边的值的,
我敢保票,你sql语句时候就已经没有值了,测试一下sql语句

while (dbReader.Read()) 不是有错误,是没有数据

在OleDbDataReader dbReader=cmd.ExecuteReader(); 设个断点,
可看到dbReader对象没有数据字段,测试一下sql语句