ADO.NET还是比较常用的,于是我研究了一下ADO.NET数据表,ADO.NET数据表(DataTable)是指内存数据表,在这里拿出来和大家分享一下,希望对大家有用。它包含一个表示该表的模式的列集合(ColumnsCollection)。一个数据表还包含有一个列集合(RowsCollection),表示该表所拥有的数据。它记得最初的的状态以及当前的状态,并跟踪已经发生的各种变化。要使用数据表,用户必须包含System.Data。
创建ADO.NET数据表
- DataTable有两个构造函数:
- public DataTable()
- public DataTable(string tableName)
给ADO.NET数据表添加列
DataTable包含一个DataColumn对象集合。这个列集合定义了该表的结构。要给这个集合添加一个新列,可以使用这个集合的Add方法。在下面的例子中,我们使用ColumnsCollection类的Add方法,给一个数据表添加了3列;这种方法指定了ColumnName和DataType属性。
- DataColumn dc = null;
- DataTable dt = new DataTable("test");
- dc = dt.Columns.Add("CustID",System.Type.GetType("System.Int32") );
- dc = dt.Columns.Add("CustomerNameLast", System.Type.GetType("System.String") );
- dc = dt.Columns.Add("CustomerNameFirst", System.Type.GetType("System.String") );
- dc = dt.Columns.Add("Purchases", System.Type.GetType("System.Double") );
DataTable上的ColumnsCollection的Add方法有两个重载(overload)函数:
- Public DataColumn Add(String columnname, Type type)
- Public DataColumn Add(String columnname)
表达式列
ADO.NET还允许用户创建和定义表达式列。ADO+中的表达式用于进行:过滤, 计算, 汇总列信息。要创建一个表达式列,需要将DataType属性设置为适合该表达式返回数值的类型;然后将Expression属性设为一个有效的表达式:
- DataColumn dc = New DataColumn;
- dc.DataType = System.Type.GetType("System.Currency");
- dc.Expression = "total * .086";
你还可以使用Add方法来创建一个表达式列。例如,下面的代码添加了一列,根据客户购买金额的10%计算折扣。这个表达式将名为“Purchases”的列乘以10%。
- DataColumn dc = New DataColumn;
- dc= dt.Columns.Add("rectg", System.Type.GetType("System.Double"), "total * 0.1");
当这个表加入数据后,这个列的数值将是total列中数值的10%
自动增量列
#T#DataColumn 的另一个特性是其能够作为自动增量列的能力。自动增量列在添加新列时,自动增加该列中的数值。要创建一个自动增量列,需要将这个列的 AutoIncrement属性设为真(true)。一旦设置了这个属性,该列开始时将使用该列的AutoIncrementSeed属性中定义的数值。在添加了一列后,自动增量列的数值将按该列的AutoIncrementStep属性中的数值作为步长递增。
- dc = dt.Columns.Add("CustID",System.Type.GetType("System.Int32") );
- dc.AutoIncrement = true;
- dc.AutoIncrementSeed = 1;
- dc.AutoIncrementStep = 1;