Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# F查询表达式/选择运算符/更改结果中的列标题_F#_F# 3.0 - Fatal编程技术网

F# F查询表达式/选择运算符/更改结果中的列标题

F# F查询表达式/选择运算符/更改结果中的列标题,f#,f#-3.0,F#,F# 3.0,在以下代码中: #r "System.Data.dll" #r "FSharp.Data.TypeProviders.dll" #r "System.Data.Linq.dll" open System open System.Data open System.Data.Linq open Microsoft.FSharp.Data.TypeProviders open Microsoft.FSharp.Linq open System.Windows.Forms type dbSchema

在以下代码中:

#r "System.Data.dll"
#r "FSharp.Data.TypeProviders.dll"
#r "System.Data.Linq.dll"

open System
open System.Data
open System.Data.Linq
open Microsoft.FSharp.Data.TypeProviders
open Microsoft.FSharp.Linq
open System.Windows.Forms

type dbSchema = SqlDataConnection<"...">


let grid<'T> (x:seq<'T>) =...

let query1 =
    query {
        for row in db.Status do
        //select row
        select (row.StatusID, row.Name)
    }


query1 |> Seq.toArray |> grid 
将列更改为有意义的标题(例如,数据源中的实际列,而不仅仅是Item1 Item2…)的更好方法是什么

注:对于网格函数,请参阅Tomas Petricek回复

问候,,
IP

您可以选择数据作为记录,让DataGridView推断列的名称

type Status =
    {
        StatusID: int
        Name: string
    }

let query1 =
    query {
        for row in db.Status do
        select { StatusID = row.StatusID; Name = row.Name }
    }

现在在使用新特性的F4.6中,这应该更好一些


请注意在花括号的内侧使用了|字符。这就是F中常规记录与匿名记录的区别。还请注意,属性名称StatusID和Name必须在当前表单中冗余指定。尽管这类似于在JavaScript中构造对象的工作方式,.NET开发人员一直通过C匿名类型享受着更简洁的语法。建议在未来的语言规范中使用允许类似的功能作为后续更改。

我认为他对一种从源代码中自动获取名称的方法感兴趣。是的,这是正确的。然而,根据要求,这可能是备选方案之一。谢谢你们两位。干杯
let query1 =
    query {
        for row in db.Status do
        //select row
        select {| StatusID = row.StatusID; Name = row.Name; |}
    }