字段的重复校验问题

  字段的重复检验问题是我们在开发过程中会经常遇到的问题,一般常见的做法是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 中,而是返回当前记录是否能够做保存操作。

  记录点点滴滴

转载于:https://www.cnblogs.com/a164266729/p/4707479.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值