以下代码在运行时,如果选择的时间段内没有数据,但是read()的返回值仍是true,然后抛出一个数据为空的异常。请教如何解决。string sql = "select sum(money) as total from t_operlog where operid='"+qiantaiCombobox.SelectedValue+
"' and opertime between '"+beginDate.Value+"' and '"+endDate.Value+"' ";
try
{
SqlConnection conn = getConnection();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
SqlDataReader reader = cmd.ExecuteReader();
if(reader.Read())
{ MessageBox.Show("!!!");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这一句在选择的时间段内没有数据的时候仍会执行,说明返回值应该是true
//label30.Text = reader.GetDouble(0).ToString();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~但是如果执行这一句就抛出异常。
}
reader.Close();
conn.Close(); }
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
"' and opertime between '"+beginDate.Value+"' and '"+endDate.Value+"' ";
try
{
SqlConnection conn = getConnection();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
SqlDataReader reader = cmd.ExecuteReader();
if(reader.Read())
{ MessageBox.Show("!!!");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这一句在选择的时间段内没有数据的时候仍会执行,说明返回值应该是true
//label30.Text = reader.GetDouble(0).ToString();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~但是如果执行这一句就抛出异常。
}
reader.Close();
conn.Close(); }
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if(reader[0] != DBNull.Value)
label30.Text = reader.GetDouble(0).ToString();