欢迎来到天天文库
浏览记录
ID:38254622
大小:125.00 KB
页数:3页
时间:2019-06-07
《NULL比较问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、要理解字段的三值原则字段可以是具体值,null不管字段是什么,字段=null和字段<>null都是返回false的如果字段是null,字段=常量和字段<>常量都是返回false的两个字段<>判断,你先要定义如果两个都是null,算相等还是不等,如果算相等where(col1<>col2 orcol1isnullandcol2isnotnull orcol1isnotnullandcol2isnull)如果不算相等where(col1<>col2 orcol1isnull orcol2isnull)你到底想干啥不管有没有null用whereisnull(col1,col2)
2、<>col2都能过滤出来2010-09-27a327630539(初级程序员)select* fromtablewherenvl(A,B
3、
4、'0')<>B;如果A为空就会返回B0了,这样就可以返回结果了.如果B也可能为空的话可以这样:select* fromtablewherenvl(A,B
5、
6、'0')<>nvl(B,A
7、
8、'0');处理F5刷新页面重复提交页面的一个思路 当提交完一个页面后,如果我们再次点击F5刷新该页面的话,会弹出一个提示,提示我们如果继续,则会重新发送提交我们刚才提交的内容,要是类似付款或一次性的操作,我们不应该这样操作,否则会造成重复提交
9、的问题。解决这个问题,我们可以通过如下思路来处理: 1.提交成功后,将一个成功状态存入session中,然后重新载入该页面。 2.在page_load方法中,判定该session字段的状态值,如果为成功,则显示成功信息,否则显示错误提示,紧跟着通过Session.Remove()方法来清空该缓存即可。ASP.NET防止按F5键造成的表单重复提交 当前大多数Web应用程序都是基于数据库驱动,这其中经常遇到的一个问题: 按F5键刷新造成的数据重复提交 曾经尝试过一些方法,最有效的是一篇发表在MSDN的方法, 原理如下:在ASP.NET页面中有
10、一个名为__VIEWSTATE 的隐藏域,这个隐藏域保存着当前页面中控件的视图状态,如果是通过提交按钮提交或者页面回发,这个隐藏域的值会 改变,但是如果是通过按浏览器的F5键刷新,则这个隐藏域的值不会改变。 通过上述的原理,我们只需在页面保存上一次隐藏域的值,然后在页面执行时判断对比当前隐藏域的值,就可以知道客 户 端是通过那种方式来执行数据提交。 但是这种方法有非常大的局限性: 1、服务器端需要每次保存额外的数据,要想每次获取隐藏域的值,必须通过HttpModule拦截,这样势必影响应用程序的其它部分,因为HttpModule是全
11、局性的,经过测试,图片显示不了,使用的第三方JavaScript库失去作用,我用的是jQuery。 前一段时间,一次偶然的发现,通过判断Request中的Header信息,可以达到防止表单重复提交,如图所示: 第一幅图是通过提交按钮提交数据的请求信息 第二幅图是通过按F5刷新提交数据的请求信息 (说明:我使用的是HttpWatch这款工具) 这两次请求都成功了,但你仔细观察Headers中的Accept的值,你会发现第一次通过提交按钮提交的时候, Accept反应的是当前客户端环境下可以接受的多媒体类型,但是第二次通过按F5刷新
12、提交的时候的,它的 值变成了*/*,表示所有的。 因此我大胆假设,通过判断Request.Headers["Accept"]!="*/*"就可以达到我们想要的效果。实践证明,我 的假设到目前我测试的情况下是正确的,欢迎大家踊跃测试,解决这个问题。 同理,其它服务器端编程语言,也可以借鉴这个方法,因为原理都是一样的,基于请求--响应模式。
此文档下载收益归作者所有