-
vb.net教程之DataView与列表或表格控件结合实现查询
DataView与列表或表格控件结合实现查询
Dba.Fill(Ds1, "score")
If Not Page.IsPostBack Then
DropDownList1.DataBind()
End If

图三 DataView与DropDownList结合实现查询 图四 DataView与ListBox结合实现查询
还要针对DropDownList 的SelectedIndexChanged事件编写下列程序:
Dim x
x = Val(DropDownList1.SelectedItem.Text)
DataView.RowFilter = "学号=" & x
Label1.DataBind()
Label2.DataBind()
Label3.DataBind()
Label4.DataBind()
这样就可以图三那样的查询功能。这里要特别注意把DropDownList的AutoPostBack属性设置为True,否则,不能实现图三那样的查询功能。图四对应的程序几乎完全一样,只要把DropDownList换成ListBox就可以了。
图五和图六则是DataView结合DataGrid实现查询的结果。在这二个实例中,我们先把数据库库中的二个字段的所有内容

图五 按钮类型为LinkButton 图六按钮类型为PushButton
分页显示在DataGrid中,然后用鼠标单击各个人的姓名时就在右边的标签框里显示他的详细成绩。要实现图五所示的功能,在设置好DataGrid的数据源、数据键字段和分页功能之后,请选择“属性生成器”中的 “列”,出现图七所示的窗口,请把“在运行时自动创建列”功能去掉,把“可用列”中的“学号”添加到“选定的列”中。把图七中“按钮列”中的“选择” 添加到“选定的列”中,然后在“文本字段”中选择“姓名”字段,在“按钮类型”中选择“LinkButton”,在“页眉文本”中输入“姓名”,具体情况见图七所示。为了显示每个人的具体成绩,我们还要在窗体中添加三个Web标签控件并把它与DataView中相应的字段进行绑定。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:
Dba.Fill(Ds1, "score")
If Not Page.IsPostBack Then
DataGrid1.DataBind()
End If
再给DataGrid1的PageIndexChanged事件加入下列代码:
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
这样就可以实现图五中的分页功能。为了实现查询的功能,我们还要给DataGrid1的SelectedIndexChanged事件编写下列程序:

图七 DataGrid属性生成器中的列
Dim index As Integer
Dim key As String
index = DataGrid1.SelectedIndex
key = DataGrid1.DataKeys(index).ToString()
DataView.RowFilter = DataGrid1.DataKeyField & "='" & key & "'"
Label1.DataBind()
Label2.DataBind()
Label3.DataBind()
要实现这种操作,要求数据库必须有一个主键(也叫数据键)。如果把图七中的“按钮类型”选择为“PushButton”,则会出现图六所示的效果。
以上程序都在VB.NET+Windows2000 Server(Service Pack 2)+IIS5.0下调试通过,从这些程序我们可以看到:DataView在Web数据库查询上非常有用,利用它我们设计各种ASP.NET查询程序。当你准备把VB.NET中设计好的这些程序拷贝到其它服务器上运行和调试时,请先在本机上进行编译,其方法是:选择“文件”菜单中的“生成并浏览”,这样就会在程序所在的Web文件夹中的Bin 目录下生成二个扩展名为dll的文件。如果仅仅是把程序拷贝到其它服务器上运行,则只要把扩展名为aspx的主文件、数据库文件以及Bin文件夹一起拷贝到其它服务器的任何一个虚拟目录中(或Web共享文件夹)就可以了。如果是把程序拷贝到其它服务器上去调试,则应该把所有相关的文件都拷贝过去,但虚拟目录的名称可以不一样。另外,为了避免出现找不到数据库的问题,请在程序的窗体装载事件的代码中加入语句:Dbc.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("score.mdb"),这里的Dbc是数据连接的名称, score.mdb是要访问的数据库。
(相关vb.net教程)
DropDownList、ListBox、DataGrid都是典型的列表或表格控件,把这些控件的数据源设置为DataView就可以把数据库中所有记录的某个字段的内容全部显示出来,再结合程序就可以实现查询。图三和图四实现的就是这种功能。以图三为例,把数据库连接设置之后,请在窗体中添加一个DropDownList和四个Web标签控件,然后把DropDownList的DataSource属性设置为DataView、DataTextField属性设置为学号、AutoPostBack属性设置为True,再把四个Web标签控件与DataView中相应的字段进行绑定。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:Dba.Fill(Ds1, "score")
If Not Page.IsPostBack Then
DropDownList1.DataBind()
End If


图三 DataView与DropDownList结合实现查询 图四 DataView与ListBox结合实现查询
还要针对DropDownList 的SelectedIndexChanged事件编写下列程序:
Dim x
x = Val(DropDownList1.SelectedItem.Text)
DataView.RowFilter = "学号=" & x
Label1.DataBind()
Label2.DataBind()
Label3.DataBind()
Label4.DataBind()
这样就可以图三那样的查询功能。这里要特别注意把DropDownList的AutoPostBack属性设置为True,否则,不能实现图三那样的查询功能。图四对应的程序几乎完全一样,只要把DropDownList换成ListBox就可以了。
图五和图六则是DataView结合DataGrid实现查询的结果。在这二个实例中,我们先把数据库库中的二个字段的所有内容


图五 按钮类型为LinkButton 图六按钮类型为PushButton
分页显示在DataGrid中,然后用鼠标单击各个人的姓名时就在右边的标签框里显示他的详细成绩。要实现图五所示的功能,在设置好DataGrid的数据源、数据键字段和分页功能之后,请选择“属性生成器”中的 “列”,出现图七所示的窗口,请把“在运行时自动创建列”功能去掉,把“可用列”中的“学号”添加到“选定的列”中。把图七中“按钮列”中的“选择” 添加到“选定的列”中,然后在“文本字段”中选择“姓名”字段,在“按钮类型”中选择“LinkButton”,在“页眉文本”中输入“姓名”,具体情况见图七所示。为了显示每个人的具体成绩,我们还要在窗体中添加三个Web标签控件并把它与DataView中相应的字段进行绑定。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:
Dba.Fill(Ds1, "score")
If Not Page.IsPostBack Then
DataGrid1.DataBind()
End If
再给DataGrid1的PageIndexChanged事件加入下列代码:
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
这样就可以实现图五中的分页功能。为了实现查询的功能,我们还要给DataGrid1的SelectedIndexChanged事件编写下列程序:

图七 DataGrid属性生成器中的列
Dim index As Integer
Dim key As String
index = DataGrid1.SelectedIndex
key = DataGrid1.DataKeys(index).ToString()
DataView.RowFilter = DataGrid1.DataKeyField & "='" & key & "'"
Label1.DataBind()
Label2.DataBind()
Label3.DataBind()
要实现这种操作,要求数据库必须有一个主键(也叫数据键)。如果把图七中的“按钮类型”选择为“PushButton”,则会出现图六所示的效果。
以上程序都在VB.NET+Windows2000 Server(Service Pack 2)+IIS5.0下调试通过,从这些程序我们可以看到:DataView在Web数据库查询上非常有用,利用它我们设计各种ASP.NET查询程序。当你准备把VB.NET中设计好的这些程序拷贝到其它服务器上运行和调试时,请先在本机上进行编译,其方法是:选择“文件”菜单中的“生成并浏览”,这样就会在程序所在的Web文件夹中的Bin 目录下生成二个扩展名为dll的文件。如果仅仅是把程序拷贝到其它服务器上运行,则只要把扩展名为aspx的主文件、数据库文件以及Bin文件夹一起拷贝到其它服务器的任何一个虚拟目录中(或Web共享文件夹)就可以了。如果是把程序拷贝到其它服务器上去调试,则应该把所有相关的文件都拷贝过去,但虚拟目录的名称可以不一样。另外,为了避免出现找不到数据库的问题,请在程序的窗体装载事件的代码中加入语句:Dbc.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("score.mdb"),这里的Dbc是数据连接的名称, score.mdb是要访问的数据库。
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比