Profil de Leexbb7766's Small HomePhotosBlogListes Outils Aide

Blog


9 juillet

被存储过程阴了下。。。。

最近在做项目,.NET的,单位用的SQL2000,大东西当然要用到Stored Procedure来提高效率。。。。这又是我第头一次用Stored Procedure,虽然读书学过,不过书本和实践毕竟buyiyang。。。
前几次顶多就是传递int类型参数。今天碰到个要传递字符串的情况。对应字段在数据库里头又是nvarchar格式。。。。。
Stored Procedure语句:
CREATE PROCEDURE getUserSalt (@uname nvarchar) AS 
SELECT [w_salt] FROM [DBWorker] 
WHERE [w_username]=@uname
GO
结果就栽在这里了。单独的SQL语句可以直接运行,but,变成了Stored Procedure后居然什么都不返回,也不出错。。。。。
后来查了下资料才发现,定义传递参数的时候,像nvarchar这种可变的,必须要加上长度。。。
在把(@uname nvarchar)修改成(@uname nvarchar(50))以后,这个Stored Procedure总算是成功执行了。

10 juillet

ASP.NET 读写中文COOKIE乱码解决方法

最近在写一个网站时候遇到了个不大不小的问题.
网站是有用户登录功能的,登录后在首页就会显示"XXX 欢迎".
XXX是用户名,当然英文可以,中文亦可.
 
没想到在DEBUG时就遇到了问题, 凡是中文用户名的用户,登录后显示出来的用户名都是乱码...(很怪的乱码)
开头以为是页面编码问题,捣腾好久无效.
打开COOKIE发现,COOKIE文件中存放的的确是正确的中文用户名,而读出后就变成乱码.
 
搜遍GOOGLE,终于找到症结所在.
 
如果带中文的COOKIE的值,在存放到COOKIE时得用:
myCookie("Username") = Server.UrlEncode(strUsername)
这样的方法,将中文内容先编码后存储(编码成为形如%e4%bd%a0%e5%a5%bd的格式),即可正常读出.
读出时用:
Server.UrlDecode(Request.Cookies("IAmACookie")("Username"))
方法即可.
 
没想到搞了那么久,原来问题出在字符编码上......什么时候多国文字能完美兼容呢....?
16 novembre

Atlas 体验

  MICROSOFT在11月放出了ATLAS 的BETA版本。偶当仁不让DOWN下一个来试了下,感受颇多。
  简单来说,ATLAS是MICROSOFT推出的用在ASP.NET中的一组AJAX控件。不能不说盖子同学脑子聪明,在WEB2.0如日中天的时候放出这么个东西,也是众望所归。对于JAVASCRIPT菜鸟或者压根不懂JAVASCRIPT的人也没关系,用了这组控件在ASP.NET中就能实现和AJAX相同的效果。而懂JAVASCRIPT的人也可以省些力气用在其他方面,而不必像以前那样书写JS代码。
  用了下,实际上这个ATLAS是结合了JAVASCRIPT和VB/C#来实现AJAX效果。一个触发操作(比如Button.Click)还是放到服务器上执行,不过不再整个页面POSTBACK,而就更新需要更新的部分。因此反应速度快了,服务器负担也小。
  不过用下来感觉,反映还是不如JAVASCRIPT写出的AJAX。有时候按下BUTTON后,极端情况要过1秒多才完成需要的操作(比如往指定文本框填入文字),毕竟操作还是要回到服务器执行,然后再回传。当然,并不是所有操作都不适合ATLAS。如果像一些简单的操作,还是用纯JAVASCRIPT来的速度快,不过复杂的,比如读写数据库,就不能单单靠JAVASCRIPT了。
  总而言之,ATLAS毕竟还是1.0BETA,肯定还有许多需要完善的地方,包括一些BUG。但是它里面的新特性,以及高效率建立AJAX应用的理念还是值得推崇 。