经测试,前面的一篇文章有错误,现在修订如下:
有错误的文章:录入时检测数据是否存在的验证
一、前端代码
functioncheckbqid() {varbqid=$("#txtBqid").val().replace(/s/g,""); //删除所有空格if(bqid.length<5) {alert("请输入5位数班期ID");return; }$.ajax({ type:'get', url:'bqidcheck.ashx', contentType:"application/json;charset=utf-8", dataType:"text", data: {bqid:bqid}, success:function(data) { if(data=="True") { $("#remind").html("");$("#txtBqid").focus(); } else{ $("#remind").html(""); }}, error:function() { $("#remind").html(""); }}); }
注意几个问题:
1、删除字符串中所有空格 str.replace(/s/g, "")
2、字符串长度 str.length
二、后台一般处理程序
stringbqid=context.Request.QueryString["bqid"];boolresult=newDAL.banqi().Exists(bqid);context.Response.Write(result);
返回是True或False,但是前端dataType: "text",所以条件判断if (data=="True")
三、DAL
//检测bqid是否存在 publicboolExists(stringbqid) {StringBuilderstrSql=newStringBuilder();strSql.Append("select count(1) from banqi");strSql.Append(" where bqid=@bqid");SqlParameter[]parameters={newSqlParameter("@bqid",SqlDbType.NVarChar,20)};parameters[0].Value=bqid;objectobj=newSqlHelper().ExecuteScalar(strSql.ToString(),parameters,CommandType.Text);intres=Convert.ToInt32(obj);if(res>0){ returntrue;}else{ returnfalse;} }
前面的文章中使用ExecuteNonQuery,返回的是执行SQL返回的行数;
这里,使用ExecuteScalar,返回查询结果集中的第1行第1列,返回的结果为object类型,在使用之前必须强制转换为所需的类型。