-
vb.net教程之DataView在Web数据库查询上的应用
DataView在Web数据库查询上的应用
ADO.NET是Microsoft最新的数据库访问技术,DataView是ADO.NET对象群中一个重要的成员,它类似于SQL Server中的View,跟ADO对象中RecordSet地位相当,它在数据库浏览特别是记录查询上应用非常广泛,本文就来探讨DataView在Web数据库查询上的应用。
一:DataView用于一般查询
图一就是DataView用于一般查询的一个典型实例。假如数据库有好几百条记录,我们先只列出它的前三条记录,这样可以大大加快程序启动的速度,然后只要输入查询条件就可以在下面的DataGrid中显示符合条件的记录。DataView有一个RowFilter属性,充分利用这个属性,我们就可以设计出各种查询程序。
图一 DataView用于一般查询 图二 查询结果的分页显示
要实现图一所示的功能,可以直接使用文本编辑器编写ASP.NET程序来实现,但是比较烦琐。我们现在用VB.NET来设计,具体过程是:启动VB.NET并新建一个ASP.NET Web应用程序→把“工具箱”“数据”选项卡中的OleDbDataAdapter拖动到窗体上,然后按屏幕提示配置数据适配器并生成数据集,再把“数据”选项卡中的DataView添加到窗体中并设置好它的Table属性→在窗体上添加显示数据的DataGrid,把它的数据源设置为DataView,数据键字段设置为“学号”→在窗体上添加其它所需的控件。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:
Dba.Fill(Ds1, 0, 3, "score") ' Dba和Ds1分别是数据适配器和数据集的名称,score是数据表
If Not Page.IsPostBack Then
DataGrid1.DataBind()
End If
第一个语句的作用是:只用数据库中的前三个记录填充数据集,如果你不指定记录的个数,它将所有的记录填充数据集,在记录很多的情况下程序启动非常缓慢。图一中“查询”命令按钮对应的代码是:
DataView.RowFilter = "英语>" & Val(TextBox1.Text)
Dba.Fill(Ds1, "score")
DataGrid1.DataBind()
从这里我们可以看到:利用DataView来查询,关键是写出它的RowFilter属性的表达式。图一中“查找”对应的RowFilter属性表达式是:DataView.RowFilter = "学号=" & Val(Textbox2.Text) (注意这里的学号字段是数值型的),“列出”对应的表达式则是:DataView.RowFilter = "数学>" & Val(Textbox3.Text) & "and 数学<" & Val(Textbox4.Text)。如果要实现姓名的模糊查询,则可以这样写:DataView.RowFilter = "姓名 like " + "'" + Trim(Textbox5.Text) + "*" + "'" 。
如果没有符合条件的记录,则DataView.Count = 0 。利用这个特点你就可以更灵活地处理各种查询结果。
(相关vb.net教程)
ADO.NET是Microsoft最新的数据库访问技术,DataView是ADO.NET对象群中一个重要的成员,它类似于SQL Server中的View,跟ADO对象中RecordSet地位相当,它在数据库浏览特别是记录查询上应用非常广泛,本文就来探讨DataView在Web数据库查询上的应用。
一:DataView用于一般查询
图一就是DataView用于一般查询的一个典型实例。假如数据库有好几百条记录,我们先只列出它的前三条记录,这样可以大大加快程序启动的速度,然后只要输入查询条件就可以在下面的DataGrid中显示符合条件的记录。DataView有一个RowFilter属性,充分利用这个属性,我们就可以设计出各种查询程序。
图一 DataView用于一般查询 图二 查询结果的分页显示
要实现图一所示的功能,可以直接使用文本编辑器编写ASP.NET程序来实现,但是比较烦琐。我们现在用VB.NET来设计,具体过程是:启动VB.NET并新建一个ASP.NET Web应用程序→把“工具箱”“数据”选项卡中的OleDbDataAdapter拖动到窗体上,然后按屏幕提示配置数据适配器并生成数据集,再把“数据”选项卡中的DataView添加到窗体中并设置好它的Table属性→在窗体上添加显示数据的DataGrid,把它的数据源设置为DataView,数据键字段设置为“学号”→在窗体上添加其它所需的控件。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:
Dba.Fill(Ds1, 0, 3, "score") ' Dba和Ds1分别是数据适配器和数据集的名称,score是数据表
If Not Page.IsPostBack Then
DataGrid1.DataBind()
End If
第一个语句的作用是:只用数据库中的前三个记录填充数据集,如果你不指定记录的个数,它将所有的记录填充数据集,在记录很多的情况下程序启动非常缓慢。图一中“查询”命令按钮对应的代码是:
DataView.RowFilter = "英语>" & Val(TextBox1.Text)
Dba.Fill(Ds1, "score")
DataGrid1.DataBind()
从这里我们可以看到:利用DataView来查询,关键是写出它的RowFilter属性的表达式。图一中“查找”对应的RowFilter属性表达式是:DataView.RowFilter = "学号=" & Val(Textbox2.Text) (注意这里的学号字段是数值型的),“列出”对应的表达式则是:DataView.RowFilter = "数学>" & Val(Textbox3.Text) & "and 数学<" & Val(Textbox4.Text)。如果要实现姓名的模糊查询,则可以这样写:DataView.RowFilter = "姓名 like " + "'" + Trim(Textbox5.Text) + "*" + "'" 。
如果没有符合条件的记录,则DataView.Count = 0 。利用这个特点你就可以更灵活地处理各种查询结果。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比