none
如何透過 DataTable.TableNewRow 事件,將 Master 的欄位做為 Details 欄位的預設值? RRS feed

  • 問題

  • 我在一個 DataSet 中加入二個 DataTable,其中一個名稱為 MasterTable,另一個為 DetailsTable,並加入一個 Relations 將 MasterTable 與 DetailsTable 串起來。

     

    MasterTable 有一個"預設儲位"的欄位,期望可以在新增 DetailsTable 時自動帶入相對應的欄位(儲位)。

     

    我發現在 DataTable 元件中有一個 TableNewRow 的事件, 於是我在 DetailsTable.TableNewRow 事件中將今天的日期塞到"交易日期"欄位,可以成功完成。

     

    可是問題來了,Details 中「儲位」需要從 Master中的「預設儲位」帶入,我可以在 TableNewRow 中實做嗎?為什麼我怎麼試都試不出來?

    2007年11月22日 上午 02:17

解答

  • 你總知道 Master 的 key 吧,用這個 key 搭配 Master.Select() 來做,不就可以取出那個 key 代表的 DataRow?

    再來就直接取值就好啦。

     

    2007年11月22日 上午 04:36
    版主

所有回覆

  • 我記得 DataSet 沒有這種能力,需要另外的處理,把你所謂的預設儲位抓出來使用。

    要不然這種事就丟給資料庫的 SQL 去做比較好。

     

    2007年11月22日 上午 02:28
    版主
  •  小朱 寫信:

    我記得 DataSet 沒有這種能力,需要另外的處理,把你所謂的預設儲位抓出來使用。

    要不然這種事就丟給資料庫的 SQL 去做比較好。

     

    主管限制不得使用資料庫功能...

     

    可以建議其他物件的事件方便可以實做這類需求嗎?就是在新增 Detail 資料時,將 Master 欄位值帶入做為 Detail 的初始值?

    2007年11月22日 上午 04:07
  • 你總知道 Master 的 key 吧,用這個 key 搭配 Master.Select() 來做,不就可以取出那個 key 代表的 DataRow?

    再來就直接取值就好啦。

     

    2007年11月22日 上午 04:36
    版主