读书人

扩张 DataSet 的 ToString() 方法

发布时间: 2013-03-16 11:51:46 作者: rapoo

扩展 DataSet 的 ToString() 方法

扩展 DataSet 的 ToString() 方法

为了方便使用 DataSet,需要扩展其 ToString() 方法,但是,我们并不真的覆盖原来的 ToString() 方法。

open System.Xml;;
open System.IO;;
open System.Linq;;
open System.Data;;

type System.Data.DataTable with
member dt.ToString2() =
let f0 = seq { for f in dt.Columns do
yield f.ColumnName }
|> Seq.reduce (fun a b -> a + "," + b)

let q0 = seq { for r in dt.Select() do
let t = r.ItemArray
|> Seq.map ( fun i -> i.ToString() )
|> Seq.reduce ( fun a b -> a + "," + b )
yield t
}
|> String.concat ("\r\n")
f0 + "\r\n" + q0

type System.Data.DataTableCollection with
member dtc.ToString2() =
[ 1..dtc.Count ]
|> Seq.map(fun i -> dtc.Item(i-1).ToString2() )
|> String.concat ("\r\n")

type System.Data.DataSet with
member ds.ToString2() =
[ ds.Tables ]
|> Seq.map(fun i -> i.ToString2() )
|> String.concat ("\r\n")

定义好以后,就可以使用了。

let ds = new DataSet()
ds.ReadXml(@"C:\Users\tmx\Desktop\aaa.xml")
ds.ToString2()
ds.Tables.ToString2()
ds.Tables.[0].ToString2()
ds.Tables.[1].ToString2()
let ds = new DataSet()
ds.ReadXml(@"aaa.xml")
ds.ToString2()
ds.Tables.ToString2()
ds.Tables.[0].ToString2()
ds.Tables.[1].ToString2()

读书人网 >操作系统

热点推荐