难度:3
需要基础: 对数组有一定了解。
1.设置DataTable的主键
//
Set up keys object for defining primary key
DataColumn[]keys = new DataColumn[ 1 ];
keys[ 0 ] = thisDataSet.Tables[ " Customers " ].Columns[ " CustomerID " ];
thisDataSet.Tables[ " Customers " ].PrimaryKey = keys;
DataColumn[]keys = new DataColumn[ 1 ];
keys[ 0 ] = thisDataSet.Tables[ " Customers " ].Columns[ " CustomerID " ];
thisDataSet.Tables[ " Customers " ].PrimaryKey = keys;
注:主键可由表的一列或多列(多主键,参照数据库相关书籍)构成,包含可以在表中唯一标示行的值或值集合。
如果希望在连接数据库,Fill数据表时,就自动对应数据库中表单的主键,复制过来。默认设置无法完成,需明确告诉DataAdapter。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
2.查找表中是否存在主键值为XX的数据行
DataRow findRow
=
thisDataSet.Tables[
"
Customers
"
].Rows.Find(
"
XX
"
);
该行代码是在上面代码的基础上运行的。
findRow为Null,表示不存在;否则指向该行。
3.删除数据表中的某一行
thisRow
=
thisDataSet.Tables[
"
Cutomers
"
].Rows[
3
]; //指向某一行,也可以指向Find的某一行
thisRow.Delete();
thisRow.Delete();
实际上Delete()方法并不执行删除操作,只是将这行的RowState设置为Deleted,在Update()操作执行时,才集中删除和改动受影响的行和数据。
未完待续...