国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

mssql默認不區分大小寫;向excel中寫入長整型時異常

2024-07-21 02:32:01
字體:
來源:轉載
供稿:網友

1.sql server 2000下默認不區分大小寫,不區分全半角

平時會遇到這種狀況:當查詢字段等于'a'的記錄時,查詢結果中包括等于 A a A 的記錄;
原因是在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,-- 區分大小寫和全角半角

在中文版sqlserver2000下默認字段類型是這樣的:
field NVARCHAR(50) COLLATE Chinese_PRC_CI_AS,-- SQL Server 默認區分重音(重音是什么東西?)

使用可視化窗口設置也很簡單:
使用企業管理器,選擇表使用“設計表”功能-排序規則
打開窗口:勾選區分大小寫,勾選區分寬度(全半角區分)

==================================================================================
2.有一個使用.net寫入Excel的程序,在win2000下會出現異常,在win2003下則不出現此異常,情況很特別

定位在錯誤出現處的一行代碼是
sheet0.Cell[1,1] = Row["L"];

通過查看已經寫入的部分,出現錯誤時將要寫入的是一個整型數值。
編寫一個Excel中寫入整型數的程序,未能重現此bug。

考慮到列L的數據是從數據庫中讀出并未顯示使用某種類型表示它,所以它的類型不一定是整型;
打開數據庫查看,L的類型定義是bigint;編寫一個Excel寫入長整型數的程序,重現此bug。

此問題說明在Win2000下,為Excel寫入長整型時,未能正確轉換為字符串。
在Excel中所有值的表示都是使用字符串,我們在將值寫入Excel之前就應該將其轉換為字符串類型。
該行代碼修改為以下樣式后,不再出現異常:sheet0.Cell[1,1] = Row["L"].Tostring();

當我們使用的對象預期為字符串類型時,最好使用顯示轉換的寫法,以避免隱式轉換時出現不可預期的異常。
http://blog.csdn.net/dongma_yifei/archive/2007/01/25/1493597.aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城固县| 肥乡县| 房山区| 彩票| 安溪县| 镇安县| 灯塔市| 麻栗坡县| 平谷区| 海伦市| 江阴市| 咸宁市| 通山县| 阿拉善右旗| 手机| 拉萨市| 永城市| 财经| 诸城市| 宣城市| 榆树市| 赤峰市| 商都县| 玉田县| 马龙县| 勐海县| 澎湖县| 玉环县| 县级市| 盘山县| 金乡县| 江门市| 沙坪坝区| 丰原市| 威远县| 吉木萨尔县| 长宁县| 玛曲县| 布尔津县| 蛟河市| 屏东市|