日期:2014-05-18  浏览次数:20362 次

用生成器得到的代码?这句是多此一举的判断吗??
C# code

    StringBuilder strSql=new StringBuilder("插入语句");
object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);//返回添加进去的索引ID
            if (obj == null)
            {
                return 1;
            }
            else
            {
                return Convert.ToInt32(obj);
            }





obj == null这句,obj怎么会=null呢,成功插入肯定会返回一个ID值的,如果没成功插入,代码就会报错了,还要判断吗?



------解决方案--------------------
在严谨性上来说还是需要判断的,因为毕竟不知道你GetSingle的方法是什么样的,如果在这个方法里捕获了异常,并且当异常时返回null,那时候如果你直接转换就出错了
------解决方案--------------------
这个方法并不一定用来返回一个ID值的吧
应该是返回Rows[0][0]的值,那么这个判断是必要的。
------解决方案--------------------
楼主方法不怎么好,应该参考其他方法
StringBuilder strSql=new StringBuilder("插入语句");
int n = ObjCom.ExecuteNonQuery();
if (n > 0)
{
res = true;
}
else
{
res = false;

}
------解决方案--------------------
如果在方法DbHelperSQL.GetSingle中没有捕获异常,那么执行出错的时候就会直接报错了。
另外 obj==null是有必要的。就同1楼所说的那样。
------解决方案--------------------
肯定有必要的啊,如果没有捕捉就直接报错,现在的话你可以对它进行一些友好性提示
------解决方案--------------------
插入出错==(obj==null)?

插入出错了,程序就中断了啊.还判断什么,虽然我都写上obj==null