日期:2014-05-17  浏览次数:20367 次

如何在查找最大值时,无符合条件是返回零值
代码如下:怎样改当查找最大值结果为空时,都只是返回catch 的内容。
public int IsTiDan(DateTime strWorkDate)
  {
  string strComm = "select top 1 max(DateNum) from WorkNum where WorkDate=@WorkDate and 1=1";
  SqlConnection sqlConn = this.GetSqlServerConn(); //调用GetSqlServerConn()方法获得数据库连接
  SqlCommand sqlComm = new SqlCommand(); //生成数据库命令操作对象
  try
  {
  sqlComm.CommandText = strComm; //指定要执行的SQL命令
  sqlComm.Connection = sqlConn; //指定要使用的SQL连接
  sqlComm.Parameters.AddWithValue("@WorkDate", strWorkDate); //为SQL命令的参数赋值
  //sqlComm.Parameters.AddWithValue("@ConNum", strConNum);
  object obj = sqlComm.ExecuteScalar(); //执行SQL命令返回第1行第1列的值
  int re = Convert.ToInt32(obj);
  if (re == null)
  {
  re = 0;
  }
   
  return re;
 
  }
  catch (Exception ex)
  {
  return -100;
  }
  finally
  {
  this.CloseSqlServerConn(sqlConn); //调用方法关闭数据库
  }
  }

------解决方案--------------------
if (re == null)
{
re = 0;
throw new Exception();//手动抛一个异常就到catch里面去了
}
------解决方案--------------------
object obj = sqlComm.ExecuteScalar();
if (obj == null)
{
return 0;
}
else
{
return ...;
}