解決辦法是將欄位改成NChar,NVarchar等型別,在入庫的時候每個字串插入前都加入一個N,如N’lily’、N’Male’,相容性會更好,作為Nvarchar欄位,這是一種推薦做法!小貼士:char型別: 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR儲存定長資料很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。Varchar型別:Varchar 的型別不以空格填滿,比如varchar(100),但它的值只是”qian”,則它的值就是”qian” 而char 不一樣,比如char(100),它的值是”qian”,而實際上它在資料庫中是”qian “(qian後共有96個空格,就是把它填滿為100個位元組)。由於char是以固定長度的,所以它的速度會比varchar快得多!但程式處理起來要麻煩一點,要用trim之類的函式把兩邊的空格去掉!VARCHAR儲存變長資料,但儲存效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR型別的實際長度是它的值的實際長度+1。為什麼“+1”呢?這一個位元組用於儲存實際使用了多大的長度。Nchar型別和Nvarchar型別是怎麼一回事呢?為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。
解決辦法是將欄位改成NChar,NVarchar等型別,在入庫的時候每個字串插入前都加入一個N,如N’lily’、N’Male’,相容性會更好,作為Nvarchar欄位,這是一種推薦做法!小貼士:char型別: 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR儲存定長資料很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。Varchar型別:Varchar 的型別不以空格填滿,比如varchar(100),但它的值只是”qian”,則它的值就是”qian” 而char 不一樣,比如char(100),它的值是”qian”,而實際上它在資料庫中是”qian “(qian後共有96個空格,就是把它填滿為100個位元組)。由於char是以固定長度的,所以它的速度會比varchar快得多!但程式處理起來要麻煩一點,要用trim之類的函式把兩邊的空格去掉!VARCHAR儲存變長資料,但儲存效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR型別的實際長度是它的值的實際長度+1。為什麼“+1”呢?這一個位元組用於儲存實際使用了多大的長度。Nchar型別和Nvarchar型別是怎麼一回事呢?為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。