天天看点

Table是怎样炼成的:Row、RowCollection

接下来的连续几篇,我们要演练作一个描述通用的二维表,并演示该二维表的继承通途。

先定义数据行的状态

1

Table是怎样炼成的:Row、RowCollection

 /// <summary>

2

Table是怎样炼成的:Row、RowCollection

 /// 数据行的状态

3

Table是怎样炼成的:Row、RowCollection

 /// </summary>

4

Table是怎样炼成的:Row、RowCollection

 public enum RowState

5

Table是怎样炼成的:Row、RowCollection

 {

6

Table是怎样炼成的:Row、RowCollection

7

Table是怎样炼成的:Row、RowCollection

 /// 新建状态

8

Table是怎样炼成的:Row、RowCollection

9

Table是怎样炼成的:Row、RowCollection

 Added,

10

Table是怎样炼成的:Row、RowCollection

11

Table是怎样炼成的:Row、RowCollection

 /// 删除状态

12

Table是怎样炼成的:Row、RowCollection

13

Table是怎样炼成的:Row、RowCollection

 Deleted,

14

Table是怎样炼成的:Row、RowCollection

15

Table是怎样炼成的:Row、RowCollection

 /// 修改状态

16

Table是怎样炼成的:Row、RowCollection

17

Table是怎样炼成的:Row、RowCollection

 Modified,

18

Table是怎样炼成的:Row、RowCollection

19

Table是怎样炼成的:Row、RowCollection

 /// 为止状态

20

Table是怎样炼成的:Row、RowCollection

21

Table是怎样炼成的:Row、RowCollection

 Unchanged

22

Table是怎样炼成的:Row、RowCollection

 }

开始定义数据行了

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 /// 数据行

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 public class Row

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 private object[] datas;

Table是怎样炼成的:Row、RowCollection

 private System.Collections.ArrayList colNames;

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 /// 该数据行所依赖的表的名称

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 public readonly string TableName; 

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 /// 该数据行的状态

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 public RowState RowState;

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 protected internal Row(ColumnCollection columns, string tableName)

Table是怎样炼成的:Row、RowCollection
Table是怎样炼成的:Row、RowCollection

 datas = new object[columns.Count];

Table是怎样炼成的:Row、RowCollection

 this.TableName = tableName;

23

Table是怎样炼成的:Row、RowCollection

 colNames = new System.Collections.ArrayList();

24

Table是怎样炼成的:Row、RowCollection

 foreach (Column col in columns)

25

Table是怎样炼成的:Row、RowCollection

26

Table是怎样炼成的:Row、RowCollection

 colNames.Add(col.ColumnName);

27

Table是怎样炼成的:Row、RowCollection

28

Table是怎样炼成的:Row、RowCollection

29

Table是怎样炼成的:Row、RowCollection

30

Table是怎样炼成的:Row、RowCollection

31

Table是怎样炼成的:Row、RowCollection

32

Table是怎样炼成的:Row、RowCollection

33

Table是怎样炼成的:Row、RowCollection

 /// 获取或设置行的指定列的数据

34

Table是怎样炼成的:Row、RowCollection

35

Table是怎样炼成的:Row、RowCollection

 /// <param name="index">列的索引号,从0开始</param>

36

Table是怎样炼成的:Row、RowCollection

 /// <returns>列中存储的数据</returns>

37

Table是怎样炼成的:Row、RowCollection

 public object this[int index]

38

Table是怎样炼成的:Row、RowCollection

39

Table是怎样炼成的:Row、RowCollection

 set

40

Table是怎样炼成的:Row、RowCollection

41

Table是怎样炼成的:Row、RowCollection

 datas[index] = value; 

42

Table是怎样炼成的:Row、RowCollection

 this.RowState = RowState.Modified;

43

Table是怎样炼成的:Row、RowCollection

44

Table是怎样炼成的:Row、RowCollection

 get

45

Table是怎样炼成的:Row、RowCollection

46

Table是怎样炼成的:Row、RowCollection

 return datas[index];

47

Table是怎样炼成的:Row、RowCollection

48

Table是怎样炼成的:Row、RowCollection

49

Table是怎样炼成的:Row、RowCollection

50

Table是怎样炼成的:Row、RowCollection

51

Table是怎样炼成的:Row、RowCollection

52

Table是怎样炼成的:Row、RowCollection

53

Table是怎样炼成的:Row、RowCollection

 /// <param name="columnName">列的名称</param>

54

Table是怎样炼成的:Row、RowCollection

55

Table是怎样炼成的:Row、RowCollection

 public object this[string columnName]

56

Table是怎样炼成的:Row、RowCollection

57

Table是怎样炼成的:Row、RowCollection

58

Table是怎样炼成的:Row、RowCollection

59

Table是怎样炼成的:Row、RowCollection

 this[colNames.IndexOf(columnName)] = value;

60

Table是怎样炼成的:Row、RowCollection

61

Table是怎样炼成的:Row、RowCollection

62

Table是怎样炼成的:Row、RowCollection

63

Table是怎样炼成的:Row、RowCollection

 return this[colNames.IndexOf(columnName)];

64

Table是怎样炼成的:Row、RowCollection

65

Table是怎样炼成的:Row、RowCollection

66

Table是怎样炼成的:Row、RowCollection

67

Table是怎样炼成的:Row、RowCollection

68

Table是怎样炼成的:Row、RowCollection

69

Table是怎样炼成的:Row、RowCollection

 /// 获取或设置行的全部数据

70

Table是怎样炼成的:Row、RowCollection

71

Table是怎样炼成的:Row、RowCollection

 public object[] ItemArray

72

Table是怎样炼成的:Row、RowCollection

73

Table是怎样炼成的:Row、RowCollection

74

Table是怎样炼成的:Row、RowCollection

75

Table是怎样炼成的:Row、RowCollection

 return datas;

76

Table是怎样炼成的:Row、RowCollection

77

Table是怎样炼成的:Row、RowCollection

78

Table是怎样炼成的:Row、RowCollection

79

Table是怎样炼成的:Row、RowCollection

 if (value.Length == datas.Length)

80

Table是怎样炼成的:Row、RowCollection

81

Table是怎样炼成的:Row、RowCollection

 datas = value; 

82

Table是怎样炼成的:Row、RowCollection

83

Table是怎样炼成的:Row、RowCollection

84

Table是怎样炼成的:Row、RowCollection

85

Table是怎样炼成的:Row、RowCollection

86

Table是怎样炼成的:Row、RowCollection

87

Table是怎样炼成的:Row、RowCollection

88

Table是怎样炼成的:Row、RowCollection

 /// 将该行数据状态改为RowState.Unchanged

89

Table是怎样炼成的:Row、RowCollection

90

Table是怎样炼成的:Row、RowCollection

 public void AcceptChanges()

91

Table是怎样炼成的:Row、RowCollection

92

Table是怎样炼成的:Row、RowCollection

 this.RowState = RowState.Unchanged;

93

Table是怎样炼成的:Row、RowCollection

94

Table是怎样炼成的:Row、RowCollection

95

Table是怎样炼成的:Row、RowCollection

96

Table是怎样炼成的:Row、RowCollection

 /// 为该行作删除标记

97

Table是怎样炼成的:Row、RowCollection

98

Table是怎样炼成的:Row、RowCollection

 public void Delete()

99

Table是怎样炼成的:Row、RowCollection

100

Table是怎样炼成的:Row、RowCollection

 this.RowState = RowState.Deleted;

101

Table是怎样炼成的:Row、RowCollection

102

Table是怎样炼成的:Row、RowCollection

103

Table是怎样炼成的:Row、RowCollection

104

Table是怎样炼成的:Row、RowCollection

 /// 将该行的状态设置为RowState.Added

105

Table是怎样炼成的:Row、RowCollection

106

Table是怎样炼成的:Row、RowCollection

 public void SetAdded()

107

Table是怎样炼成的:Row、RowCollection

108

Table是怎样炼成的:Row、RowCollection

 if (this.RowState == RowState.Unchanged)

109

Table是怎样炼成的:Row、RowCollection

110

Table是怎样炼成的:Row、RowCollection

 this.RowState = RowState.Added;

111

Table是怎样炼成的:Row、RowCollection

112

Table是怎样炼成的:Row、RowCollection

113

Table是怎样炼成的:Row、RowCollection

114

Table是怎样炼成的:Row、RowCollection

115

Table是怎样炼成的:Row、RowCollection

 /// 将该行数据状态设置为RowState.Modified

116

Table是怎样炼成的:Row、RowCollection

117

Table是怎样炼成的:Row、RowCollection

 public void SetModified()

118

Table是怎样炼成的:Row、RowCollection

119

Table是怎样炼成的:Row、RowCollection

 if (this.RowState == RowState.Unchanged || this.RowState == RowState.Added)

120

Table是怎样炼成的:Row、RowCollection

121

Table是怎样炼成的:Row、RowCollection

122

Table是怎样炼成的:Row、RowCollection

123

Table是怎样炼成的:Row、RowCollection

124

Table是怎样炼成的:Row、RowCollection

本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806273