天天看點

Table是怎樣煉成的:Table

描述一個資料表

1

Table是怎樣煉成的:Table

 /// <summary>

2

Table是怎樣煉成的:Table

 /// 描述一個資料表

3

Table是怎樣煉成的:Table

 /// </summary>

4

Table是怎樣煉成的:Table

 public class Table

5

Table是怎樣煉成的:Table

 {

6

Table是怎樣煉成的:Table

7

Table是怎樣煉成的:Table

 protected Table(string name, ColumnCollection cols)

8

Table是怎樣煉成的:Table

9

Table是怎樣煉成的:Table

 TableName = name;

10

Table是怎樣煉成的:Table

 Columns = cols;

11

Table是怎樣煉成的:Table

 Rows = new RowCollection();

12

Table是怎樣煉成的:Table

 }

13

Table是怎樣煉成的:Table

14

Table是怎樣煉成的:Table

15

Table是怎樣煉成的:Table

 /// 擷取或設定表的列架構

16

Table是怎樣煉成的:Table

17

Table是怎樣煉成的:Table

 protected readonly ColumnCollection Columns;

18

Table是怎樣煉成的:Table

19

Table是怎樣煉成的:Table

 /// 擷取或設定表的資料行

20

Table是怎樣煉成的:Table

21

Table是怎樣煉成的:Table

 protected RowCollection Rows;

22

Table是怎樣煉成的:Table

23

Table是怎樣煉成的:Table

 /// 擷取或設定表的名稱

24

Table是怎樣煉成的:Table

25

Table是怎樣煉成的:Table

 protected readonly string TableName;

26

Table是怎樣煉成的:Table

27

Table是怎樣煉成的:Table

28

Table是怎樣煉成的:Table

 /// 将該行資料狀态改為RowState.Unchanged

29

Table是怎樣煉成的:Table

30

Table是怎樣煉成的:Table

 protected void AcceptChanges()

31

Table是怎樣煉成的:Table

32

Table是怎樣煉成的:Table

 for (int i = 0; i <= Rows.Count - 1; i++)

33

Table是怎樣煉成的:Table

34

Table是怎樣煉成的:Table

 Rows[i].AcceptChanges();

35

Table是怎樣煉成的:Table

36

Table是怎樣煉成的:Table

37

Table是怎樣煉成的:Table

38

Table是怎樣煉成的:Table

39

Table是怎樣煉成的:Table

 /// 移除所有資料行

40

Table是怎樣煉成的:Table

41

Table是怎樣煉成的:Table

 protected void Clear()

42

Table是怎樣煉成的:Table

43

Table是怎樣煉成的:Table

 this.Rows.Clear();

44

Table是怎樣煉成的:Table

45

Table是怎樣煉成的:Table

46

Table是怎樣煉成的:Table

47

Table是怎樣煉成的:Table

 /// 傳回狀态比對的資料行,并以新資料表的形式展現

48

Table是怎樣煉成的:Table

49

Table是怎樣煉成的:Table

 /// <param name="rowState"></param>

50

Table是怎樣煉成的:Table

 /// <returns></returns>

51

Table是怎樣煉成的:Table

 protected Table GetChanges(RowState rowState)

52

Table是怎樣煉成的:Table

53

Table是怎樣煉成的:Table

 Table tmpTable = new Table(rowState.ToString(), this.Columns);

54

Table是怎樣煉成的:Table

 foreach (Row row in Rows)

55

Table是怎樣煉成的:Table

56

Table是怎樣煉成的:Table

 if (row.RowState == rowState)

57

Table是怎樣煉成的:Table

58

Table是怎樣煉成的:Table

 tmpTable.Rows.Add(row);

59

Table是怎樣煉成的:Table

60

Table是怎樣煉成的:Table

61

Table是怎樣煉成的:Table

 return tmpTable;

62

Table是怎樣煉成的:Table

63

Table是怎樣煉成的:Table

64

Table是怎樣煉成的:Table

65

Table是怎樣煉成的:Table

66

Table是怎樣煉成的:Table

 /// 依據現有的資料表的架構,生成新的資料行

67

Table是怎樣煉成的:Table

68

Table是怎樣煉成的:Table

69

Table是怎樣煉成的:Table

 protected Row NewRow()

70

Table是怎樣煉成的:Table

71

Table是怎樣煉成的:Table

 return new Row(Columns, this.TableName);

72

Table是怎樣煉成的:Table

73

Table是怎樣煉成的:Table

74

Table是怎樣煉成的:Table

75

Table是怎樣煉成的:Table

 /// 按關鍵字(資料行的第一列)比對,并傳回符合的資料行

76

Table是怎樣煉成的:Table

77

Table是怎樣煉成的:Table

 /// <param name="filterKey"></param>

78

Table是怎樣煉成的:Table

79

Table是怎樣煉成的:Table

 protected Row[] Select(string filterKey)

80

Table是怎樣煉成的:Table

81

Table是怎樣煉成的:Table

 System.Collections.ArrayList tmpRows = new System.Collections.ArrayList();

82

Table是怎樣煉成的:Table

83

Table是怎樣煉成的:Table

84

Table是怎樣煉成的:Table

 if (row[0].ToString() == filterKey)

85

Table是怎樣煉成的:Table

86

Table是怎樣煉成的:Table

 tmpRows.Add(row);

87

Table是怎樣煉成的:Table

88

Table是怎樣煉成的:Table

89

Table是怎樣煉成的:Table

 return (Row[])tmpRows.ToArray(typeof(Row));

90

Table是怎樣煉成的:Table

91

Table是怎樣煉成的:Table

92

Table是怎樣煉成的:Table

93

Table是怎樣煉成的:Table

 /// 列印Table的資料

94

Table是怎樣煉成的:Table

95

Table是怎樣煉成的:Table

 public virtual void Print()

96

Table是怎樣煉成的:Table

97

Table是怎樣煉成的:Table

 System.Text.StringBuilder sb = new StringBuilder();

98

Table是怎樣煉成的:Table

99

Table是怎樣煉成的:Table

 foreach (Column col in this.Columns)

100

Table是怎樣煉成的:Table

101

Table是怎樣煉成的:Table

 sb.AppendFormat("{0}/t", col.ColumnName);

102

Table是怎樣煉成的:Table

103

Table是怎樣煉成的:Table

 sb.AppendLine();

104

Table是怎樣煉成的:Table

 System.Console.WriteLine(sb.ToString());

105

Table是怎樣煉成的:Table

 foreach (Row row in this.Rows)

106

Table是怎樣煉成的:Table

107

Table是怎樣煉成的:Table

 foreach (object obj in row.ItemArray)

108

Table是怎樣煉成的:Table

109

Table是怎樣煉成的:Table

 System.Console.Write("{0}/t", obj);

110

Table是怎樣煉成的:Table

111

Table是怎樣煉成的:Table

 System.Console.WriteLine();

112

Table是怎樣煉成的:Table

113

Table是怎樣煉成的:Table

114

Table是怎樣煉成的:Table

好,到此Table所涉及的5個類都定義實作完畢了。

我們來回顧一下,Table中什麼是最基礎的,什麼是最重要的?

按我們一般來看,表中最重要基礎的實行,最重要的是資料。其實表最基礎是的架構,架構就是列的定義,而行隻不過是列的資料展現形式。

是以Table在構造的時候,必須先定義列的集合,而Row的構造函數是protected internal的,意義是不能在外面被構造,必須通過Table來依據列的定義來構造。

下篇,我們将看到我們對Table的繼承,發揮更多OO展現。

本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/806271