zoukankan      html  css  js  c++  java
  • 字段的重复校验问题

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

      记录点点滴滴

  • 相关阅读:
    一步步介绍网页之--> intro.js的使用
    使用 intro.js 使项目介绍更加完美
    完整版中国省市县数据 存储到数据库中
    java 使用openoffice 转换文档,成.pdf,实现在线预览效果
    jsp 页面传多个id 到java后台的处理方式
    CCF推荐国际刊物会议列表2015
    百度ABCOP团队校招提前Offer等你来挑战
    高性能计算中心汇总
    Linux SSH 远程登录后显示-bash-4.1$的解决办法
    Coolpad Y1刷机方法
  • 原文地址:https://www.cnblogs.com/a164266729/p/4707479.html
Copyright © 2011-2022 走看看