日期:2010-05-08  浏览次数:20552 次

在学习DataSet对象的时候,我们遇到一个概念:DataView。该对象表示对DataSet中的数据表的一种查看方式,系统默认的方式是将数据以表格的形式排列,并且数据是根据从数据表中读取数据时行排列的顺序,通常和涉及数据库时的Sort Order或是在SQL语句中定义的排列依据(升序或降序等)。

    使用DataView时候,可以根据不同的实际情况,来使用不同的排序依据(Sort)、过滤条件(Filter)或是查找方法(Search)。

    下面这个实例,我们将利用DataView对象,显示同一个数据库中的不同数据。

    在Adodotnet web项目里,添加一个Web窗体命名为DataView.aspx,并添加三个Button控件,分别时Button1(Text=”显示全部数据”)、Button2(Text=”只显示男生数据”)和Button3(Text=”只显示女生数据”),添加一个DataGrid控件,命名为DataView.aspx,设计窗口如图8.11所示。


图8.11 DataView.aspx的设计窗口

切换至DataView.aspx的HTML窗口,主要HTML代码如下:
  <form id="Form1" method="post" runat="server">
   <FONT face="宋体">利用DataView过滤数据
    <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 40px" runat="server"
     Text="显示全部数据 " Width="105px" Height="32px"></asp:Button>
    <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 40px" runat="server"
     Text="只显示男生数据" Width="105px" Height="32px"></asp:Button>
    <asp:Button id="Button3" style="Z-INDEX: 103; LEFT: 216px; POSITION: absolute; TOP: 40px" runat="server"
     Text="只显示女生数据" Width="105" Height="32"></asp:Button>
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 104; LEFT: 8px; POSITION: absolute; TOP: 80px" runat="server"
     Width="328px" Height="128px" Font-Size="X-Small"></asp:DataGrid></FONT>
  </form>
DataView.aspx的逻辑代码如下:
'--------code begin -------
Imports System.Web
Imports System.Data
Public Class DataView
    Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
    '此处省略了窗体设计器生成的代码,以节约篇幅
  #End Region
    Public rowfilter As String = "null"
    '声明该Web Form的全局变量,用来保存DataView对象的过滤条件,
    '初始化默认为null,即不过滤
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        '调用或去数据的过程
        getdata()
End Sub
    '编写通用过程getdata,该过程用于或去数据,并根据过滤条件生成视图
    Sub getdata()
        '在此处放置初始化页的用户代码
        Dim connstr As String  '声明数据库连接字符
        Dim mycon As OleDb.OleDbConnection
        '因为使用Aeecss数据库,所以声明OleDConnention对象
        Dim mycmd As OleDb.OleDbDataAdapter
        '声明DataAdapter对象
        Dim mysql As String
        '声明Command命令的 SQL字符串
        '  Try
        connstr = "provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "\StudentInfor.mdb"
        '为连接字符串赋值
        mycon = New OleDb.OleDbConnection(connstr)
        '实例化Connection对象
        mysql = "Select * from student"
        '设置SQL语句,即查询数据库中所有内容
        mycmd = New OleDb.OleDbDataAdapter(mysql, mycon)
&n