关于Linq to DataSet的一个小小的实例
-
首先要填充一个dataset,只有里面有数据对象,我们才可以对其使用linq
-
对其中的数据表,我们还要将其转换为IEnumerable<T>泛型接口
static void Main(string[] args) { DataSet ds = FillDataSet(); DataTable dt = ds.Tables[0]; //构建一个IEnumerable<T>的集合 //为了linq查询 var query = dt.AsEnumerable(); //取得数据,延迟查询 var v = from u in query where u.Field<int>("id")!=0 select u; //得到所有的数据 foreach (var vv in v) Console.WriteLine(vv.Field<int>("id") + " " + vv.Field<string>("Title")+" "+vv.Field<string>("Author")+" "+vv.Field<DateTime>("Time")); Console.Read(); } //首先要填充一个dataset static DataSet FillDataSet() { //创建一个新的dataset实例 DataSet ds = new DataSet("books"); //创建一个datatable实例 DataTable dt = new DataTable("book"); //接下来是构建datatable的列 DataColumn dc1 = new DataColumn("id", typeof(int)); //包括列的名称和数据类型 dt.Columns.Add(dc1); DataColumn dc2 = new DataColumn("Title", typeof(string)); dt.Columns.Add(dc2); DataColumn dc3 = new DataColumn("Author", typeof(string)); dt.Columns.Add(dc3); DataColumn dc4 = new DataColumn("Time", typeof(DateTime)); dt.Columns.Add(dc4); string[] names = { "c#", "java", "c++","vb" }; string[] authors = { "李莉莉", "李莉莉", "李莉莉", "李莉莉" }; //为datatable添加数据行 for (int i = 0; i < names.Length; i++) { DataRow dr = dt.NewRow(); dr["id"] = i; dr["Title"] = names[i]; dr["Author"] = authors[i]; dr["Time"] = DateTime.Now.AddDays(30); dt.Rows.Add(dr); } ds.Tables.Add(dt); return ds; }