2011-06-27 62 views
0

這樣的代碼,我從專家的F#章得到工作15需要解釋從專家F#第15章這個F#代碼:數據

let dataAdapter = new SqlDataAdapter() 
let buildDataSet conn queryString = 
    dataAdapter.SelectCommand <- new SqlCommand(queryString,conn) 
    let dataSet = new DataSet() 
    let _ = new SqlCommandBuilder(dataAdapter) 
    dataAdapter.Fill(dataSet) |> ignore 
    dataSet 

let dataSet = 
    buildDataSet conn "SELECT * FROM Employees" 

如果我想刪除數據或插入數據我應該做新的數據集?

回答

2

使用DataSet來處理數據的想法是DataSet表示數據庫的某個部分的本地內存副本。要修改數據庫,您需要修改DataSet(內存中)中存儲的數據,然後使用SqlDataAdapter將更改提交到數據庫。

您發佈的代碼段使用Fill方法將數據庫中的數據複製到DataSet。使用Update方法提交從內存到數據庫的更改(另一個方向)。

你可以在this MSDN article找到一些C#的例子。把它們翻譯成F#應該不難。

如果您不需要將數據保存在內存中,可能會更容易直接使用SqlCommand。使用這種類型,您可以創建SQL命令並立即在SQL數據庫上執行它(不將任何數據複製到內存中)。你可以在我的recent blog post中找到一些例子。博客顯示瞭如何使用ExecuteReader方法讀取數據,但是您可以使用ExecuteNonQuery方法來運行命令(不需要從SQL服務器讀取任何結果)。