none
有關DataAdapter Update 問題 RRS feed

  • 問題

  • 請教 使用DataAdpater 的Update
    Q1.它所更新的應該是 DataSet 中的TABLE 吧

    Q2.請問更新DataSet 中的TABLE 用途為何!

    Q3.想請問 有例子 可以做update ,再撈出DataSet 被更新資料嗎?

    麻煩了!
    謝謝!
    2008年4月28日 上午 04:18

解答

  • Hi,

    1.) DataAdpater 的Update方法是將用戶端的DataSet內容更新到資料庫中,可以是DataSet或是Table或是DataRow

    2.) ?.. DataSet是離線型的,所有的操作/變更是先儲存在記憶體中,不會寫到資料庫裡面,等到呼叫update之後才會把變更寫到資料庫中

    3.) 一般來說儲存會用像下面的方式

    Code Snippet

    Dim intReturn as Integer = DataAdapter.Update(DataSet)

    If intReturn > 0 then

       DataSet.AcceptChanges()

    End If

     

    呼叫AcceptChanges就會認可DataSet中的資料變更,不用重新撈一次,而如果在AcceptChanges之前想取得DataSet中變更的有哪些可以用DataSet.Tables(0).GetChanges(),會回傳一個DataTable,裡面是被變更過的資料。

    2008年4月28日 上午 05:14
    版主
  • DataAdapter.Update() 會自動呼叫 DataTable.AcceptChanges() 來更新 DataRow 的 RowState,不必自行呼叫。

    除非有更新失敗的情況,或者要手動更新 RowState 到 Unchanged。

     

    2008年4月28日 下午 04:55
    版主

所有回覆

  • Hi,

    1.) DataAdpater 的Update方法是將用戶端的DataSet內容更新到資料庫中,可以是DataSet或是Table或是DataRow

    2.) ?.. DataSet是離線型的,所有的操作/變更是先儲存在記憶體中,不會寫到資料庫裡面,等到呼叫update之後才會把變更寫到資料庫中

    3.) 一般來說儲存會用像下面的方式

    Code Snippet

    Dim intReturn as Integer = DataAdapter.Update(DataSet)

    If intReturn > 0 then

       DataSet.AcceptChanges()

    End If

     

    呼叫AcceptChanges就會認可DataSet中的資料變更,不用重新撈一次,而如果在AcceptChanges之前想取得DataSet中變更的有哪些可以用DataSet.Tables(0).GetChanges(),會回傳一個DataTable,裡面是被變更過的資料。

    2008年4月28日 上午 05:14
    版主
  • DataAdapter.Update() 會自動呼叫 DataTable.AcceptChanges() 來更新 DataRow 的 RowState,不必自行呼叫。

    除非有更新失敗的情況,或者要手動更新 RowState 到 Unchanged。

     

    2008年4月28日 下午 04:55
    版主
  •  

    謝謝指導!
    2008年4月30日 上午 07:34