Linq查询在LinqToSql以及DataTable中的使用
最近学习了下Linq技术,感觉就是在业务逻辑层面去实现一个自定义的SQL处理,个人觉得比较有用的是通过Linq查询实现DataTable数据集的整合和重建,这样,我们就可以在业务逻辑层面上完成跨库数据整合以及在DataSet离线数据库中进行查询汇总。前者将跨库查询从Sql Server层面移植到业务逻辑层面,有利于在不对已有数据库进行改动的条件下完成跨库功能运用,后者将一些业务查询从数据库服务器移植至应用服务器,可能减轻了数据库服务器的压力,但是应用服务器的压力增大了。
下面是我学习Linq中的一个简单程序例子,以备自己需要使用时查询
1 using (DataClasses1DataContext en = new DataClasses1DataContext()) //LinqtoSql中的DataContext上的类
2 {
3 var result = from abc in en.t_dbfmx where abc.czr.Contains("zhong") select new { abc.xh, abc.dbfmxID }; //使用Linq查询表得到数据集合
4
5 DataSet1.DataTable1DataTable abcde = new DataSet1.DataTable1DataTable(); //定义DataSet数据集中的DataTable
6
7 foreach (var item in result)
8 {
9 DataRow dTableNowRow = abcde.NewRow(); //新建DataRow类
10 dTableNowRow["xh"] = item.xh.ToString(); //填充DataRow列
11 dTableNowRow["dbfmxID"] = item.dbfmxID.ToString(); //填充DataRow列
12 abcde.Rows.Add(dTableNowRow); //加新行
13
14 }
15 abcde.AcceptChanges(); //完成DataTable数据填充
16
17 DataSet1.DataTable2DataTable abcee = new DataSet1.DataTable2DataTable(); //定义DataSet数据集中的DataTable
18
19 var DataSetresult = from aaa in abcde.AsEnumerable() where aaa.xh.Contains("11310") select aaa; //使用Linq查询抽取DataTable数据集合
20 foreach (var item1 in DataSetresult)
21 {
22 DataRow dTableNowRow1 = abcee.NewRow();//新建DataRow类
23 dTableNowRow1["xh"] = item1.xh.ToString(); //填充DataRow列
24 dTableNowRow1["dbfmxID"] = item1.dbfmxID.ToString(); //填充DataRow列
25 abcee.Rows.Add(dTableNowRow1); //加新行
26 }
27 abcee.AcceptChanges();//完成DataTable数据填充
28
29 DropDownList1.DataSource = abcee; //绑定DropDownList控件
30 DropDownList1.DataTextField = "xh";
31 DropDownList1.DataValueField = "dbfmxID";
32 DropDownList1.DataBind();
33
34 }