【发布时间】:2020-09-25 21:46:19
【问题描述】:
这是我用来根据 Class 字段值选择最大 RollNo 的代码。 但是当表中没有Class字段的数据时。然后产生Error。
using (var conn = new OleDbConnection(DatabaseObjects.ConnectionString))
{
conn.Open();
command = new OleDbCommand("select max(RollNo) as Roll from Students where Class = '"+cmbClass.Text+"'", conn);
OleDbDataReader dr = command.ExecuteReader();
if (!dr.IsDBNull(0))
{
while (dr.Read())
{
i = Convert.ToInt32(dr["Roll"]);
}
}
InvalidOperation 异常正在发生。如果表中有数据,我想获得 RollNo 的值。如果表中没有数据,我该怎么办?
【问题讨论】:
-
你试图在阅读之前访问该行,
if (!dr.IsDBNull(0)) -
那我该怎么办?
-
为了你自己,请使用参数而不是字符串连接
-
我将使用 now 参数
标签: c# database ms-access oledbdatareader