编程容易出错地方汇总( 边界编程)

1、select Max(AutoID) from RushMatch   如果数据库表中没有一条记录,那么就会返回null

2、(int)与System.Convert.ToInt32(  )的区别

先发一个函数,

public static object GetMaxIDExecuteQuerySql(string SqlText, ref string ErrString)
        {
            object  RetValue = null;
            try
            {
                SqlConnection Conn  = NewConnection();
                if (Conn == null)
                    throw new Exception("无法建立数据库连接");
                try
                {
                    SqlCommand Cmd = new SqlCommand(SqlText + ";select SCOPE_IDENTITY() ", Conn);
                    RetValue = Cmd.ExecuteScalar();
                }
                finally
                {
                    Conn.Close();
                }
            }
            catch (Exception e)
            {
                ErrString = e.Message;
            }
            return RetValue; 
        }

这个函数很有用的,因为在程序中很多的地方总是会用到这个,特别是用事务的地方,其他的表总是依赖于这个表的,因为但是这个语句不能写在事务里面,因为事务中的其他语句是等第一个语句的返回的结果的identity值来插入到其他的相关的多个表中,因为我如果我了select max(id)来取得这个表的id,那么其他的用户同时也插入了新的数据,那么我的max(id)便不是我自己的新插入的最大的id了,所以我们就必须用到上面的函数了,我在得到返回值得时候我用的是(int)的方法来强制转换我的ExecuteScalar();返回的object的结果,可是报了转换无效的错误,用了system.conver.ToInt32()就成功了,为什么呢?

3减少程序出错的另外一个方法就是尽量多封装稳定的函数,这个时候就要求写出的函数的要稳定,符合软件工程的一些要求,例如返回什么值,这个函数应该是什么类型不应该是什么类型的,一个函数不应该去做很多事情,一个函数不应该在内部出现很多的直接获取页面对象的语句而应该是直接通过传递对象以参数的形式,这样就很好复用,还有例如多个页面之间来回调用的时候,本页面的函数不应该跳跃几个页面去操作,而应该是本页面的函数去操作其他页面的函数,从而实现调用,这样如果再有其他的同类操作,那么就可以直接去掉用本页面的函数即可。同时也保证了页面少出错误。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值