線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1839
推到 Plurk!
推到 Facebook!

關於 DataTable ColumnChanging, ColumnChanged 等事件的問題

尚未結案
chrischi
初階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-09 09:15:30 IP:61.218.xxx.xxx 未訂閱
大家好      請教一個關於 DataTable ColumnChanging, ColumnChanged 等事件的問題,   就是我在書上(與 MSDN)中說明當使用者輸入欄位數值時可透過 DataTable 的   ColumnChanging, ColumnChanged 等事件進行資料檢核與取消等動作, 但經   試驗卻都沒什麼作用, DataTable's ColumnChanged 事件程式碼如下:      procedure MyMainForm.ColumnChanged(Sender : System.Object; e : DataColumnChangeEventArgs);   begin     if e.Column = e.Row.Table.Columns['TableName'] then     begin       // 表格名稱輸入空白, 空白時引發例外以取消新增 DataRow       if e.Row['TableName'].ToString.Trim = '' then         raise Exception.Create('表格名稱不可為空白.');       // 檢查表格名稱是否重覆, 重覆時引發例外以取消新增 DataRow       for Row in e.Row.Table.Select('TableName = ''' + e.Row['TableName'].ToString + '''') do         if Row <> e.Row then           raise Exception.Create('表格名稱重覆.');     end;   end;      問題是假設已存在一筆記錄, 然後使用者新增一筆記錄並在 "表格名稱(TableName)" 欄位   輸入幾個空白後指向前一筆已存在記錄, 依照 ColumnChanged 中程式碼, "表格名稱(TableName)" 為   空白的記錄應要自動取消但卻沒有 :      新增一筆 "表格名稱(TableName)" 欄位值為幾個空白字元的記錄:    指向前一筆已存在記錄但違反規則的記錄仍存在: 如果新增記錄並於 "表格名稱(TableName)" 輸入 ABC, 因為 ABC 已存在所以也應自動取消記錄 新增, 但也沒有, 根本沒作用... 請問應該如何才能做到這樣的需求呢?即鍵值重覆與鍵值空白自動取消新增記錄,而不要出現那個 白痴又沒人性(就一般應用程式使用者的角度來看)的提示訊息: *鍵值是 "表格名稱(TableName)" 欄位. 開發環境 : Windows 2000 Pro Pack 4, Delphi 2005 Arch Update 3, ADO.NET & DataGrid 謝謝 Chris
系統時間:2024-04-26 7:55:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!