1.动态创建DataTable
System.Type ctype = System.Type.GetType("System.String");
DataTable dt = new DataTable();
dt.Columns.Add("字段名", ctype);
dt.Columns.Add("字段名", ctype);
DataRow dr = dt.NewRow();
//dr赋值
dt.Rows.Add(dr);
2.DataTable compute 方法
public Object Compute(
string expression,
string filter
)
参数
expression
类型:System.String
要计算的表达式。
filter
类型:System.String
要限制在表达式中进行计算的行的筛选器。
返回值
类型:System.Object
Object,设置为计算结果。 如果该表达式计算得出 Null,则返回值将为即为 Value。
expression 参数需要聚合函数。 例如,以下是合法表达式:
Count(Quantity)
但是以下表达式不合法:
Sum (Quantity * UnitPrice)
如果必须针对两列或多列执行操作,则应该创建 DataColumn,并将它的 Expression 属性设置为适当的表达式,然后针对结果列使用聚合表达式。 在这种情况下,假定有一个名为“total”的 DataColumn,并且 Expression 属性设置为:
"Quantity * UnitPrice"
Compute 方法的表达式参数将为:
Sum(total)
第二个参数 filter 确定在表达式中使用哪些行。 例如,如果该表包含名为“colDate”的日期列,则可用以下表达式限制这些行:
colDate > 1/1/99 AND colDate < 17/1/99
有关为这两个参数创建表达式的规则,请参见 DataColumn.Expression 属性。
实例:下面的示例针对标识号为五的销售人员,对名为“Total”的列的值求和。
private void ComputeBySalesSalesID(DataSet dataSet)
{
// Presumes a DataTable named "Orders" that has a column named "Total."
DataTable table;
table = dataSet.Tables["Orders"];
// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Total)", "EmpID = 5");
}
3.DataTable clear方法
清除所有数据的 DataTable。
所有表中的所有行都被移除。 如果表中有任何将使子行孤立的强制子关系,则生成异常。
如果 DataSet 绑定到 XmlDataDocument,则调用 DataSet.Clear 或 DataTable.Clear 将引发 NotSupportedException。 为避免这种情况,请遍历每个表,逐个移除每一行。 使用NewRow 创建新行时,必须先对这些行进行处理,然后再调用 Clear。
实例:
private void ClearTable(DataTable table) { try { table.Clear(); } catch (DataException e) { // Process exception and return. Console.WriteLine("Exception of type {0} occurred.", e.GetType()); } }