1 /// <summary>
2 /// 从DataTable中查询数据
3 /// </summary>
4 /// <param name="tb">待处理的DataTable</param>
5 /// <param name="expression">找匹配(条件)(不用where ,直接就"什么=什么")</param>
6 /// <returns>符合你条件的DataTable</returns>
7 public DataTable GetDataTableByFilter(DataTable tb, string expression)
8 {
9 DataRow[] foundRows;
10 try
11 {
12 foundRows = tb.Select(expression);
13 }
14 catch (Exception err)
15 {
16 throw err;
17 }
18 return CopyData(foundRows, tb);
19 }
20
21
22 /// <summary>
23 /// 复制数据,深度复制
24 /// </summary>
25 /// <param name="dataSourceRow">数据源,待复制的数据</param>
26 /// <param name="dataStruct">数据结构/表结构</param>
27 /// <returns>处理后的DataTable</returns>
28 private DataTable CopyData(DataRow[] dataSourceRow, DataTable dataStruct)
29 {
30 DataTable dataTable = new DataTable();
31 //定义表结构
32 DataColumn col;
33 foreach (DataColumn column in dataStruct.Columns)
34 {
35 col = new DataColumn();
36 col.ColumnName = column.ColumnName;
37 col.DataType = column.DataType;
38 //add column
39 dataTable.Columns.Add(col);
40 }
41 foreach (DataRow row in dataSourceRow)
42 {
43 DataRow tempRow = dataTable.NewRow();
44 foreach (DataColumn column in dataStruct.Columns)
45 {
46 try
47 {
48 tempRow[column.ColumnName] = row[column.ColumnName];
49 }
50 catch
51 { continue; }
52 }
53 dataTable.Rows.Add(tempRow);
54 }
55 return dataTable;
56 }
DataTable.Select(expression)-ListView-BackColor2 /// 从DataTable中查询数据
3 /// </summary>
4 /// <param name="tb">待处理的DataTable</param>
5 /// <param name="expression">找匹配(条件)(不用where ,直接就"什么=什么")</param>
6 /// <returns>符合你条件的DataTable</returns>
7 public DataTable GetDataTableByFilter(DataTable tb, string expression)
8 {
9 DataRow[] foundRows;
10 try
11 {
12 foundRows = tb.Select(expression);
13 }
14 catch (Exception err)
15 {
16 throw err;
17 }
18 return CopyData(foundRows, tb);
19 }
20
21
22 /// <summary>
23 /// 复制数据,深度复制
24 /// </summary>
25 /// <param name="dataSourceRow">数据源,待复制的数据</param>
26 /// <param name="dataStruct">数据结构/表结构</param>
27 /// <returns>处理后的DataTable</returns>
28 private DataTable CopyData(DataRow[] dataSourceRow, DataTable dataStruct)
29 {
30 DataTable dataTable = new DataTable();
31 //定义表结构
32 DataColumn col;
33 foreach (DataColumn column in dataStruct.Columns)
34 {
35 col = new DataColumn();
36 col.ColumnName = column.ColumnName;
37 col.DataType = column.DataType;
38 //add column
39 dataTable.Columns.Add(col);
40 }
41 foreach (DataRow row in dataSourceRow)
42 {
43 DataRow tempRow = dataTable.NewRow();
44 foreach (DataColumn column in dataStruct.Columns)
45 {
46 try
47 {
48 tempRow[column.ColumnName] = row[column.ColumnName];
49 }
50 catch
51 { continue; }
52 }
53 dataTable.Rows.Add(tempRow);
54 }
55 return dataTable;
56 }
http://hi.baidu.com/wt0731/blog/item/77bd9935bb22911091ef3984.html