使用F#从头开始构建DataTable

Kno*_*uch 0 f#

是否可以使用F#从头开始构建DataTable对象

我写了这段代码

module DataHelper
open System
open System.Data
open System.Data.SqlClient

let addDataRow (dt : DataTable) kerberos =
    let dr = dt.NewRow()
    dr["Kerberos"] = kerberos
    dt.Rows.Add(dr)

let Func userList : string seq = 
    let dt : DataTable = new DataTable("UserNameListType")
    let dc : DataColumn = new DataColumn("Kerberos")
    dt.Columns.Add(dc)
    Seq.iter (fun user -> addDataRow dt user) userList
    dt
Run Code Online (Sandbox Code Playgroud)

但这有太多错误

  1. VS.NET似乎不了解DataTable,DataRow类只显示我作为intellisense的"注意".
  2. 很难使用F#中的集合对象Rows,Columns,因为这些方法都没有真正起作用(在C#中很容易使用).

Tom*_*cek 5

如果您在新项目中执行此操作,则需要添加对System.Data.dll和的引用System.Xml.dll.之后,Visual Studio应该识别类型.您可以通过右键单击项目中的"参考"并选择"添加参考"来完成此操作.

除此之外,您的代码中存在两个小错误.赋值应写为(注意前面有一个点而不是[运算符):<-=

dr.["Kerberos"] <- kerberos 
Run Code Online (Sandbox Code Playgroud)

你的Func功能应该返回DataTable:

let Func userList : DataTable =  
Run Code Online (Sandbox Code Playgroud)