![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 求教MS SQL的問題..
(https://www.pcdvd.com.tw/showthread.php?t=832903)
|
---|
求教MS SQL的問題..
敝人最近因公司的需要..
不得已.. 只好碰C#(之前學了JAVA/JSP/JDBC,C/C++/MFC,Oracle..又多加了一個了..Orz..) 我以前只學過Oracle(也有小碰過MySQL..).. 現在跳到MS SQL.. 有一個問題想請教.. 個人自己假設寫了這段: public void setDGV(DataGridView dgv){ dgv.DataSource=this.dView.Table.DefaultView; } 最後DataGridView的介面顯示會是從View(視關表)抓出來的暫時資訊... 不過會有一個怪情況.. 假設某個欄位的大小.. 例如是nchar(255).. 如果我只用掉4bytes.. 也就是4個英文字元的情況下.. 她還會剩251可用.. 問題就是.. 我只有用到4個字元.. 可是在MS SQL的情況下.. 她依然會把剩下的251bytes用不到的空間當成空白通通算進去.. 這樣會被拖很長.. 有些時候我可以把裡面資訊取出來轉成string用Trim()打消後面空白.. 可是在DataGridView控制項的情況下.. 我要如何把後面那堆空白打消呢??.. 一堆"..." 看不大順眼..!!:flash:... 煩請各位高手解答一下.. 謎之聲: TMD..老闆真是不要我的命... 最近趕案子寫程式寫得昏天暗地的.. 另外有時候真想一巴掌往PM頭上巴下去...:tu:.. TNND...明年去做健檢好了.. |
請先區分清楚char,varchar,nchar,nvarchar的型態差異
可查MS SQL線上手冊,或是 MSDN網站 |
這個問題在Oracle 也是會這樣阿~
奇怪的問題~ 不像是懂Oracle 說出來的問題!? :flash: |
嗯...
會 Transact-SQL 應該也不會有這個問題 如果不能動型態 在 select 時,加入 RTRIM() 就可以了 |
nchar 是固定長度的字串 所以不管你資料實際多長,MSSQL都會幫你PADDING到
欄位長度 nvchar才是變動長度字串,在限定的欄位長度內,字串長度有別 |
有人說用varchar..
可是那幾個我都試過了.. MS SQL都還是會留下那3個"..." 我在DataGridView控制項看的情況是這樣的.. |
char 跟 varchar 型態的差異,
冠上n只是支援Unicode, MS SQL的help寫的很棒很詳盡,多多利用. 短字串或是固定字串請用char, 不固定字串請用varchar, 在大量資料時,儲存空間跟效率會有些許差別.... |
引用:
select rtrim(field) 試試看... |
引用:
更改欄位型態為varchar "原始資料" 當然還是會存在空白 因為該欄位的值就已經是含有空白的字串了 例如char(10) "123 " 轉換為 varchar(10) "123 " 當然還是會有空白,要知道,空白也是"值" 只是當你下次"修改","新增"欄位值 "123"時,varchar(10)所存的值不會替你補上7個空白 若要修改原始資料,請下一次update命令吧 建議您還是找本資料庫的書來看一下會比較好 :ase |
所有的時間均為GMT +8。 現在的時間是09:01 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。