为DataTable设置主键及利用主键查找行数据
2013-08-12 11:18
357 查看
一,为DataTable设置主键
如果我们为DataTable设置一个主键,那么我们就可以根据主键在DataTable中查到唯一的数据。为什么是唯一的数据呢?因为根据主键查出来的记录永远都是唯一的,呵呵,要不然它与DataTable的Select方法是一样的效果了。当然,利用DataTable.Select("能确定唯一的条件").Rows[0]也可以找到与利用主键查找到的一样的信息。DataTable的主键属性为PrimaryKey,利用该属性,我们可以设置或者获取DataTable的主键。因为DataTable的主键和SQL Server的主键一样,存在联合主键的问题,所以PrimaryKey应该是一个DataColumn数组。我们可以先设置一个DataColumn数组,当然,这个数组中的列都应该是该DataTable中的列。然后将这个数组赋给PrimaryKey属性作为DataTable的主键。
以下为设置PrimaryKey的示例:
//先声明一个DataTable
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Columns.Add("D");
//然后我们将列A与列B作为dt的联合主键
DataColumn[] cols = new DataColumn[] { dt_smartgrid.Columns["A"], dt_smartgrid.Columns["B"] };
dt.PrimaryKey=cols;
很简单,我们就为dt设置好主键了。
二,利用主键查找行数据
上一步我们已经为DataTable设置好主键,这一步我们演示如何利用主键查找数据。首先我们要声明一个object[]数据,对应主键的数组中列的值,如上面的主键数组,我们声明一个object[]数组并赋值。
示例:
object[] objs=new object[]{"school","class"};
DataRow dr=dt.Rows.Find(objs);
上面的dr就是我们利用主键查找出来的唯一的行。当然,我们也可以利用如下方法来查找到该行数据:
DataRow dr=dt.Select("A='school' and B='class'").Rows[0]
两种方法查出来的效果是一样的。
相关文章推荐
- 为DataTable设置主键及利用主键查找行数据
- 为DataTable设置主键及利用主键查找行数据
- DataSet用法一:添加代码创建的表DataTable,设置主键外键,读取及修改DataSet表中数据
- 怎样为DataTable设置主键及找行数据
- DataTable 添加列、设置主键、添加行、查询、
- 利用反射把DataTable自动赋值到Model实体(自动识别数据类型)
- 利用Hibernate Interceptor回调机制 统一设置数据表的共通属性
- 设置主键自动增长引起刷新页面重复添加数据
- .SQL Server的主键可以设置成让所有数据删除后恢复成以1开始计数
- SQLITE数据表主键设置Id自增方法
- 设置GridView列名中文显示 及DataTable根据主键获取行记录
- 转:查找数据表的主键
- C#利用DataTable存取数据
- DataTable 添加列、设置主键、添加行、查询、更新
- Jsp中利用JSTL的数据格式化对百分数,货币及数据格式等进行设置
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
- Gridview利用DataFormatString属性设置数据格式
- 利用反射从DataTable填充数据到实体类的问题
- 利用DataTable一次性将数据插入到数据库中
- Zend_Db_Table 根据主键查找数据 官方手册错误