1 数据的查找方法:一是根据数据适配器填充数据集;二是通过Command对象和DataReader对象;如果不需要对数据进行编辑或者修改,应使用Command与DataReader对象,其查找效率比较高。
2 DataTable tb; DataRow row = tb.NewRow(); row[""] = 初值; tb.Rows.Add(row);row 结构与tb结构相同;在对数据表添加数据时,必须要加查插入的数据与表中的原有数据在主码列是否冲突,且主码列必须不能为空,否则异常;
3 DataColumn dc = new DataColumn(); dc.DataType = System.Type.GetType("System.String");
dc.ColumnName("ColName");dc.AutoIncrement = false; dc.Expression = "列1+列2";tb.Columns.Add(dc);
4 (1) Find 方法只能查找主码的值,因此在用DataAdapter的Fill方法对DataSet填充之后,必须设定一个主码值。格式:ds.Tables["tableName"].PrimaryKey = new DataColumn[]{ds.Tables["tableName"].Columns["ColName"]};
(2)循环查找:
foreach(DataRow row in ds.Tables["tableName"].Rows)
if(row["colName"].ToString().Trim() == "colValue")
{}
(3)DataTable 的select查询:
DataRow[] row;
row = ds.Tables["TableName"].Select("列名=ColValue","排序方法,eg:grade desc");
5 (1)insert into TableName(ColName1,ColName2,……) values("","",……)
通常把SQL语句写到Command对象的CommandText属性中加以实现。
(2)Remove与RemoveAt方法从DataRowCollection中删除DataRow,该行从表中完全删除, 但DataAdapter不会在数据源中删除该行。
6 DataView提供基础DataTable中的数据的动态视图:内容、排序和成员关系会实时反映其更改。DataView的动态功能使其成为数据绑定应用的理想选择。
RowFilter属性中比较字符串的值应当放在单引号内;eg:DataView.RowFilter = "cno = '001'";
在LIKE比较中,使用通配符*或者%进行筛选;eg:DataView.RowFilter = "sname LIKE '张*'";
使用日期,日期值应放在磅符号(#)内。eg:DataView.RowFilter = "Birthdate<#2/21/88#"
支持聚合类型:Sum,Avg,Min,Max,Count,StDev(统计标准偏差),Var(统计方差);eg:DataView.RowFilter = "Avg(age)>80";
通过在列名前加parent或child,引用父表或子表。eg:Avg(child.grade);
支持CONVERT(将数据转化为指定类型),LEN,ISNULL,IIF(根据逻辑表达式的结果,获取两个值之一),TRIM,SUBSTRING函数。eg:DataView.RowFilter = "LEN(sname)=6";
特殊字符位于列名中时必须进行转义,如果列名中包含/t,(,),/,/,=,<,>,+,-,*,^,",',[,],~,#,|,&,%则必须用中括号括起来。eg:列名为Column#,应写为[Column#];列名包括中括号,必须使用斜杠进行转义,eg:列名为Column[]的列应写为[Column[/]](只有第二个中括号必须转义)。
在字符串的中间不允许时用通配符,eg:不允许DataView.RowFilter = "sname = '张%山'";