如何检查datareader是空还是空 - 错误

时间:2015-11-04 02:45:12

标签: c# sqlite

我使用Sqlite作为后端和Windows窗体应用程序(C#)作为前端。

我正在阅读此代码:

cmdgetTransaction_ID = new SQLiteCommand("SELECT MAX(transaction_id) as expr1  FROM  transaction_master WHERE transaction_id LIKE '"+temp+"%' ", con);
SQLiteDataReader reader = cmdgetTransaction_ID.ExecuteReader();
if (reader["expr1"]!=DBNull.Value)
{
     name= reader.GetString(0);
     string[] substrings = System.Text.RegularExpressions.Regex.Split(name, "([a-z]+)|([0-9]+)");
     MessageBox.Show(substrings[0]);
}
else
{
     name=name+temp+"1";
     lblTranID.Text = name;
}

我也试过这个:if (reader.IsDBNull(0))

在调试(步入)时,它会报告以下异常:

  

System.Data.SQLite.dll中出现'System.InvalidOperationException'类型的第一次机会异常

我无法弄清楚我在做什么错误,因此它会产生异常。

1 个答案:

答案 0 :(得分:1)

这应该适合你:

if (reader != null && reader.HasRows) 
{
   while (reader.Read()) 
   {
      ...
   }
}