![]() |
||
Elite Member
加入日期: May 2002 您的住址: 地球的上面..
文章: 5,854
|
![]() 敝人最近因公司的需要..
不得已.. 只好碰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控制項的情況下.. 我要如何把後面那堆空白打消呢??.. 一堆"..." 看不大順眼..!! ![]() 煩請各位高手解答一下.. 謎之聲: TMD..老闆真是不要我的命... 最近趕案子寫程式寫得昏天暗地的.. 另外有時候真想一巴掌往PM頭上巴下去... ![]() TNND...明年去做健檢好了.. |
|||||||
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Jan 2001 您的住址: Taipei
文章: 503
|
請先區分清楚char,varchar,nchar,nvarchar的型態差異
可查MS SQL線上手冊,或是 MSDN網站
__________________
![]() |
||
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Dec 2004
文章: 65
|
這個問題在Oracle 也是會這樣阿~
奇怪的問題~ 不像是懂Oracle 說出來的問題!? ![]() |
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Nov 2000 您的住址: 新開的店
文章: 1,586
|
嗯...
會 Transact-SQL 應該也不會有這個問題 如果不能動型態 在 select 時,加入 RTRIM() 就可以了 此文章於 2008-12-25 09:56 AM 被 EIGHTS 編輯. |
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Feb 2002 您的住址: 宜蘭
文章: 1,341
|
nchar 是固定長度的字串 所以不管你資料實際多長,MSSQL都會幫你PADDING到
欄位長度 nvchar才是變動長度字串,在限定的欄位長度內,字串長度有別
__________________
AMD Athlon 64 3000+ Asus A8N-E nfoce 4 empowered Simems DDR 400 512MB *2 Benq 1640 --------------------------------- |
![]() |
![]() |
Elite Member
加入日期: May 2002 您的住址: 地球的上面..
文章: 5,854
|
![]() 有人說用varchar..
可是那幾個我都試過了.. MS SQL都還是會留下那3個"..." 我在DataGridView控制項看的情況是這樣的.. 此文章於 2008-12-25 02:23 PM 被 vxr 編輯. |
![]() |
![]() |
Senior Member
加入日期: Dec 2001
文章: 1,383
|
char 跟 varchar 型態的差異,
冠上n只是支援Unicode, MS SQL的help寫的很棒很詳盡,多多利用. 短字串或是固定字串請用char, 不固定字串請用varchar, 在大量資料時,儲存空間跟效率會有些許差別.... |
![]() |
![]() |
Senior Member
加入日期: Dec 2001
文章: 1,383
|
引用:
select rtrim(field) 試試看... |
|
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Jan 2001 您的住址: Taipei
文章: 503
|
引用:
更改欄位型態為varchar "原始資料" 當然還是會存在空白 因為該欄位的值就已經是含有空白的字串了 例如char(10) "123 " 轉換為 varchar(10) "123 " 當然還是會有空白,要知道,空白也是"值" 只是當你下次"修改","新增"欄位值 "123"時,varchar(10)所存的值不會替你補上7個空白 若要修改原始資料,請下一次update命令吧 建議您還是找本資料庫的書來看一下會比較好 ![]()
__________________
![]() |
|
![]() |
![]() |