1.sql server 2000下默认不区分大小写,不区分全半角 平时会遇到这种状况:当查询字段等于a的记录时,查询结果中包括等于 A a A 的记录; 如果你想建立一个支持大小写区分的字段,应该这样写: 如果你想建立一个支持全半角区分的字段,应该这样写: 如果你想让这个字段既支持大小写区分又支持全半角区分,应该这样写: 在中文版sqlserver2000下默认字段类型是这样的: 使用可视化窗口设置也很简单: ================================================================================== 定位在错误出现处的一行代码是 通过查看已经写入的部分,出现错误时将要写入的是一个整型数值。 考虑到列L的数据是从数据库中读出并未显示使用某种类型表示它,所以它的类型不一定是整型; 此问题说明在Win2000下,为Excel写入长整型时,未能正确转换为字符串。 当我们使用的对象预期为字符串类型时,最好使用显示转换的写法,以避免隐式转换时出现不可预期的异常。
原因是在Sql Server数据库中建立的数据表字符类型字段是不区分大小写、全半角的,无论是查询还是排序它们都被认为是一样的:
aAaA
bBbB
cCcC
dDdD
field NVARCHAR(50) COLLATE Chinese_PRC_CS_AS, — 区分大小写
field NVARCHAR(50) COLLATE Chinese_PRC_CI_AS_WS,– 区分全角半角
field NVARCHAR(50) COLLATE Chinese_PRC_CS_AS_WS,– 区分大小写和全角半角
field NVARCHAR(50) COLLATE Chinese_PRC_CI_AS,– SQL Server 默认区分重音(重音是什么东西?)
使用企业管理器,选择表使用“设计表”功能-排序规则
打开窗口:勾选区分大小写,勾选区分宽度(全半角区分)
2.有一个使用.net写入Excel的程序,在win2000下会出现异常,在win2003下则不出现此异常,情况很特别
sheet0.Cell[1,1] = Row[“L”];
编写一个Excel中写入整型数的程序,未能重现此bug。
打开数据库查看,L的类型定义是bigint;编写一个Excel写入长整型数的程序,重现此bug。
在Excel中所有值的表示都是使用字符串,我们在将值写入Excel之前就应该将其转换为字符串类型。
该行代码修改为以下样式后,不再出现异常:sheet0.Cell[1,1] = Row[“L”].Tostring();
http://blog.csdn.net/dongma_yifei/archive/2007/01/25/1493597.aspx
mssql默认不区分大小写;向excel中写入长整型时异常_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » mssql默认不区分大小写;向excel中写入长整型时异常_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      在sql语句中实现md5功能
-      ASP连接各种数据库的代码
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      更改 SQL Server 登录模式