VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net教程之DataView与列表或表格控件结合实现查询

DataView与列表或表格控件结合实现查询

(相关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是要访问的数据库。


相关教程