mssql2000中char类型和varchar类型的区别
作者:wang 日期:2009-09-21
今天,在设计用户登录模块时,遇到一个问题,从数据库中提取出用户级别的数据,赋值给Session["type"]后,在写代码判断用户级别时,无论怎么判断,用任何级别的用户登录,都判断不出来。郁闷了一天,自以为是Session会话可能有问题,查阅了若干资料,无解。
晚上上QQ群,求助群里的朋友,在朋友们的帮助下,终于找到了问题所在,原来是MSSQL2000中char类型惹的祸,在设置了CHAR类型的长度后,在数据不满长度时,数据库会自动补足长度,这样直接导致我从数据库中提取出的用户级别字段值(如:管理员)后都会带一个空格,就这个地球人都知道的常识,恶搞我了一天。汗,还是要感谢群里热心的朋友,他们在这方面经验非常丰富。
使用CHAR类型,查询效率高,速度快,一般在能够预测字段长度的情况下推荐使用CHAR类型,在从数据库中提取出数据后,转换为字符串类型后,可以通过Trim()方法截去字符串首尾的空格来处理数据的精确度。
如果在不能预测字段的长度时,建议使用VARCHAR类型,只是查询速度比CHAR类型要差。
Trim()方法的使用:
Session["type"].ToString().Trim();
晚上上QQ群,求助群里的朋友,在朋友们的帮助下,终于找到了问题所在,原来是MSSQL2000中char类型惹的祸,在设置了CHAR类型的长度后,在数据不满长度时,数据库会自动补足长度,这样直接导致我从数据库中提取出的用户级别字段值(如:管理员)后都会带一个空格,就这个地球人都知道的常识,恶搞我了一天。汗,还是要感谢群里热心的朋友,他们在这方面经验非常丰富。
使用CHAR类型,查询效率高,速度快,一般在能够预测字段长度的情况下推荐使用CHAR类型,在从数据库中提取出数据后,转换为字符串类型后,可以通过Trim()方法截去字符串首尾的空格来处理数据的精确度。
如果在不能预测字段的长度时,建议使用VARCHAR类型,只是查询速度比CHAR类型要差。
Trim()方法的使用:
Session["type"].ToString().Trim();
评论: 0 | 引用: 0 | 查看次数: 3380
发表评论