需要解释来自Expert F#第15章的这个F#代码:处理数据

时间:2011-06-27 16:42:05

标签: sql f#

这是我从专家F#第15章得到的一些代码。

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"

如果我要删除数据或插入数据,我应该创建一个新的数据集吗?

1 个答案:

答案 0 :(得分:2)

使用DataSet处理数据的想法是DataSet表示数据库某些部分的本地内存中副本。要修改数据库,您可以修改存储在DataSet(内存中)中的数据,然后使用SqlDataAdapter将更改提交到数据库。

您发布的代码段使用Fill方法将数据从数据库复制到DataSet。使用Update方法将更改从内存提交到数据库(另一个方向)。

您可以在this MSDN article中找到一些C#示例。将它们翻译成F#应该不难。

如果您不需要将数据保存在内存中,则可能更容易直接使用SqlCommand。使用此类型,您可以创建SQL命令并立即在SQL数据库上执行它(不将任何数据复制到内存中)。您可以在recent blog post中找到一些示例。该博客显示了如何使用ExecuteReader方法读取数据,但您可以使用ExecuteNonQuery方法只运行命令(不读取SQL服务器的任何结果)。