VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net教程之DataView在Web数据库查询上的应用

DataViewWeb数据库查询上的应用

(相关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 。利用这个特点你就可以更灵活地处理各种查询结果。

相关教程