笔记:实现网格视图的查询功能

实现网格视图的查询功能

http://www.snetway.com/knowshow.asp?id=86

1、 与主键相关的查询

如图所示:

通过点击载入,可以将相关数据以网格试图显示出来。今天要完成的功能有下面几个方面:

在“编号”框中,输入所要查询的编号,点击根据编号搜索,即可显示满足条件的行。

 

具体步骤如下所示:

查找出相应的列并复制à构造一个相同架构的空表(这里称为:搜索结果表)à将复制的查找到的数据导入搜索结果表中à将网格视图的数据源设为搜索结果表

 

具体代码及解析如下:

在“根据编号查询”按钮的代码设置为:

DataRow searchResult=this.CourseTable.Row.Find(this.txb_CouseNo.Text.Trim());

解析:

借助本窗体的课程数据表的行集合的方法Find,根据主键值(即课程编号)快速查找相应课程,并返回其所在的数据行;但数据行不能作为数据源,需另行创建数据表,并导入该数据行,最后将数据表作为数据源

注:CourseTableS是定义的用于存放从数据库中查询到的数据的数据表,在上一次的笔记中有提到具体的定义方法。

DataTable searchResultTable=this.CourseTable.clone();

解析:

定义一个相同架构的搜索结果空表(searchResult);

searchResultTable.ImportRow(searchResult);

解析:

向搜索结果表(searchResultTable)中插入搜索到的数据行(searchResult);

 

2、 结果多行的查询:

具体步骤:

查找出符合条件的数据行à构造相同架构的空表(设为:table)à将查到的数据行导入空表(table)à设置网格视图的数据源为该表(table)。

 

具体代码如下:

DataRowView[] searchReault=this.CourseTable.Row.FindRows(this.txb_CourseName.Text.Trim());

//借助本窗体的按名称排序的课程数据视图的方法FindRows,根据排序列(即课程名称)快速查找相应课程;由于该列并非主键,可能返回多行查询结果,故返回数据行视图数组;数据行视图数组不能直接作为数据源,需转为列表后方可作为数据源;

DataTable searchResultTable=this.CourseTable.Clone();

注释:同上。

Foreach{(DataRowView dataRowView in searchResult) //遍历搜索结果所在数据行视图数组,

{

searchaResultTable.ImportRow(dataRowView.Row);

}

//通过每条数据行视图的属性Row获取相应的数据行,并导入数据表;

this.dgv_Course.DataSource = searchResultTable;

解析:

转载于:https://www.cnblogs.com/yyyz516/p/7763213.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值