字段的重复校验问题

  字段的重复检验问题是我们在开发过程中会经常遇到的问题,一般常见的做法是AJAX请求校验,这种校验方式便捷简单,一般情况下不会存在什么问题。列一个例子

 $.ajax({
                type: "post",   //发送方式
                url: "/Home/AjaxCheckRegisterID",  //发送请求的URL字符串
                dataType: "json",  //预期服务器返回的数据类型 xml, html, text, json, jsonp, script
                async: false,      //异步请求
                timeout: 30000,    //超时时间 毫秒
         cache:false, //缓存
data: { CustomerID: $String.Trim(reg_name.val()) }, //发送的数据 beforeSend: function (XMLHttpRequest) { //请求之前
          //do somethings
         }, error: function (XMLHttpRequest, textStatus, errorThrown) { //请求出错时
             //do somethings }, success: function (data) { //请求成功时 //do somethings
}, complete: function (XMLHttpRequest, textStatus) { //请求完成之后(不论成功或失败)
          //do somethings
          } });

    这样的调用是不是很舒适、方便,这样的方式可以满足一般情况下的需求 

    在不方便使用AJAX请求处理的时候我们就需要直接处理数据库信息来判断是否重复。

    

 public bool CheckDomesticMerchantCode(DomesticVendorInfo domesticMerchantCode)
        {
            DataCommand command = DataCommandManager.GetDataCommand("CheckDomesticMerchantCode");
            command.SetParameterValue("@DomesticMerchantCode", domesticMerchantCode.DomesticMerchantCode);
            DataTable result = command.ExecuteDataTable();
            bool isExit = true;
            if (result == null || result.Rows.Count == 0)
            {
                return true;
            }
            else
            {
                for (int i = 0; i < result.Rows.Count; i++)
                {
                    if (result.Rows[i][0].ToString().Trim() == domesticMerchantCode.SysNo.ToString() && result.Rows[i][1].ToString().Trim() == domesticMerchantCode.DomesticMerchantCode.Trim())//无修改 直接保存的情况
                    {
                        return true;
                    }
                    else if (result.Rows[i][0].ToString().Trim() != domesticMerchantCode.SysNo.ToString() && result.Rows[i][1].ToString().Trim() == domesticMerchantCode.DomesticMerchantCode.Trim())// 当前要存储的code 已经在数据库中存在 
                    {
                        isExit = false;
                    }
                }
            }
            return isExit;
        }

  上边的方法适用的场景是在页面保存信息做唯一验证的时候,根据当前传过来的值来做判断是否已经存在(注意这里的坑,直接保存你的时候要考虑)这里边不止要考虑你要保存的字段,同时要考虑当前记录的主键,主要是确定是不是当前记录是不是有修改,如果主键是当前的主键,code相等既没有修改可以直接保存,code不相等的时候我们要根据新的code来查询当前code 是否已经存在与DB 中 返回值 准确来讲 不是当前code 是否已经存储在DB 中,而是返回当前记录是否能够做保存操作。

  记录点点滴滴

posted @ 2015-08-06 11:20  Flying_Boy  阅读(1141)  评论(0编辑  收藏  举报