全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1381
推到 Plurk!
推到 Facebook!

ADO.NET 字串欄位會自動 Trim ?

尚未結案
chrischi
初階會員


發表:58
回覆:59
積分:28
註冊:2004-05-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-28 15:28:38 IP:61.218.xxx.xxx 未訂閱
 
各位好      請教大家一個問題.      假設有一筆記錄有一個字串欄位(VARCHAR)的值為一個空白字元(' '), 但當我
  讀取該欄位值時所取得的字串值卻是空字元(''), 請問有什麼地方可以設定不
  要自動將空白字元(' ')的欄位值轉為空字元('').      BDPConnection1 : BDPConnection;
  DataSet1 : DataSet;
  ...
  procedure Form1.QueryData;
  var
    Adapter1 : BDPDataAdapter;
    Command1 : BDPCommand;
    Table1 : DataTable;
    AColumn : DataColumn;
  begin
    Command1 := BDPConnection1.CreateCommand;
    Command1.CommandText := 'SELECT * FROM MYTABLE';
    DataSet1 := DataSet.Create;
    Adapter1 := BDPDataAdapter.Create(Command1);
    Adapter1.Fill(DataSet1, 'MYTABLE');
    Table1 := DataSet1.Tables['MYTABLE'];
    Table1.Rows[0]['StrField'].ToString; <- 字串欄位 ToString 欄位值原為一空白字串(' '), 但讀取時卻變成空字串('')
  end;      *應用程式為 Windows Forms Application
  *開發工具 Delphi 2005 Arch Update 1
  *資料庫為 Oracle 8i
  
謝謝    Chris      
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-28 15:43:01 IP:203.204.xxx.xxx 未訂閱
Table1.Rows[0]['StrField'].ToString 如此表示 DFString='" "'; 即可 使用["]來表示空白字元 DHM
------
ATEIN
chrischi
初階會員


發表:58
回覆:59
積分:28
註冊:2004-05-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-03 11:37:39 IP:61.218.xxx.xxx 未訂閱
我的意思是指資料庫字串欄位 StrField 實際欄位值為 ' ' (包含一個空白字元的字串, 字串長度為 1), 但 Table1.Rows[0]['StrField'].ToString 所讀取到的欄位值卻是 '' (空字串, 字串長度為 0), Why ? 實在是...都給我搞一堆飛機 ;<
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-04 14:06:29 IP:203.204.xxx.xxx 未訂閱
您的DATABASE FIELDS 不可設定為VARCHAR ,要設定為CHAR 才不會截掉空白字元 DHM
------
ATEIN
chrischi
初階會員


發表:58
回覆:59
積分:28
註冊:2004-05-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-04 15:03:59 IP:61.218.xxx.xxx 未訂閱
雖說是如此, 但是這種做法是毫無邏輯可言的, 使用者打入什麼資料資料庫就會 儲存什麼資料, 哪有讀出來的資料跟資料庫實際資料不同的道理(就字串而言言) ;< 況且如果某一個欄位加大時, 現有的資料之後不就多了一些無謂的空白字元. *字串欄位一定要是 VARCHAR, 且欄位值可能只存一個空白字元
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-04 17:13:15 IP:203.204.xxx.xxx 未訂閱
我的做法是寫一函式: if FieldsRows['note'].toString='' then var FromDataBaseFieldsValue:String; Begin //令一fields 間接轉換變成成空字元 FromDataBaseFieldsValue:=' '; //指派成空字元 TextBox1.text=FromDataBaseFieldsValue; End else Begin TextBox1.text=FieldsRows['note'].ToString; //非空字元時直接指派 end; 這樣就可以解您的問題了! 用在fields 是 VarChar 的格式 DHM
------
ATEIN
系統時間:2024-05-11 19:51:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!