datareader抛出数值为空的异常,请教
以下代码在运行时,如果选择的时间段内没有数据,但是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);
}
------解决方案--------------------是不是你第0行就没有查询到数据,你把sql语句跟踪出来,到查询分析器