首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络安全-> 黑客攻防
ado.net 2.0 - 如何建立一个 dataview_asp.net技巧
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

借助于DataView,我们便能够为储存于DataTable中的数据建立不同的视图。比方说,通过DataView,您可以使用不同的排序顺序检视DataTable中的数据,亦或是根据数据列状态或筛选表达式来筛选DataTable中的资料。重要的是,当我们需要替DataTable中的数据建立不同的视图而且需要将这些数据绑定到窗体上的控件时,更需要使用DataView来完成。

 

DataView提供的是一种动态的数据视图,也就是说,其内容、排序顺序、与成员会反应出来源DataTable中的任何变更。显然DataView与DataTable.Select方法有很大的不同,Select方法会根据特定的筛选表达式或排序顺序从数据表中传回一个DataRow对象数组,而且其成员与排序顺序是静态不变的。正由于DataView的动态反应特性,因此非常适合用于数据绑定应用程序。

 

DataView提供您单一数据集合的动态视图,您可以对数据集合套用不同的排序顺序和筛选条件,此点与SQL Server数据库所提供的视图(View)有点类似。然而,DataView与数据库视图仍然有相当大的差异,因为DataView无法当成数据表来使用,也无法提供连结数据表的视图。此外,您不仅不能排除来源数据表中的字段,也不能额外加入来源数据表中不存在的字段(例如:表达式字段)。

 

您可以采用两种方式来建立一个DataView。第一种方式是使用DataView建构函式,第二种方式则是建立DataTable之DefaultView属性的一个参考。本文将详细探讨如何使用这两种方式来建立DataView。

 

使用DataView建构函式

 

DataView建构函式共提供下表所示的三个多载版本。

 

DataView建构函式的多载版本
 
DataView()
 
DataView(ByVal table As DataTable)
 
DataView(ByVal table As DataTable, _
        ByVal RowFilter As String, _
        ByVal Sort As String, _
        ByVal RowState As DataViewRowState)
 


DataView建构函式的第一个版本表示不使用任何参数来初始化DataView类别的新执行个体。请注意,如果您采用此版本来建立DataView,必须在建立DataView对象后先设定Table属性以便决定其来源DataTable,然后才能继续设定其它属性(RowFilter、Sort…等等)。

 

以下的程序代码示范如何使用第一个版本的DataView建构函式来建立DataView对象,以便筛选和排序数据集内之「章立民工作室」数据表的数据列,并将DataGridView控件绑定至此DataView。我们发现,DataGrid控件只会显示出女性,并且数据会依姓名的笔画顺序由多至少排列。以下是本范例的程序代码:

 

SqlDataAdapter1.Fill(Ds章立民工作室, "章立民工作室")
建立 DataView 对象
Dim dv As DataView = New DataView

由于采用没有任何参数的 DataView 建构函式来建立 DataView 对象,
因此必须先设定 Table 属性以便决定其来源 DataTable
dv.Table = Ds章立民工作室.章立民工作室

设定排序顺序以便依姓名的笔画顺序由多至少排列
dv.Sort = "姓名 DESC"

设定筛选条件以便只显示出女性
dv.RowFilter = "性别 = 女"

将 DataGridView 控件绑定至 DataView
DataGridView1.DataSource = dv

 

DataView建构函式的第二个版本表示使用指定的DataTable来初始化DataView 类别的新执行个体。

 

以下的程序代码它示范如何使用第二个版本的DataView建构函式来建立DataView对象,以便筛选和排序数据集内之「章立民工作室」数据表的数据列,并将DataGridView控件绑定至此DataView。我们发现,DataGridView控件只会显示出「信息部」的员工数据,并且数据会依照目前薪资由高至低排列:

 

SqlDataAdapter1.Fill(Ds章立民工作室, "章立民工作室")

建立 DataView 对象
Dim dv As DataView = New DataView(Ds章立民工作室.章立民工作室)

设定排序顺序以便依目前薪资由高至低排列
dv.Sort = "目前薪资 DESC"

设定筛选条件以便只显示出「信息部」的员工数据
dv.RowFilter = "部门 = 信息部"

将 DataGridView 控件绑定至 DataView
Me.DataGridView1.DataSource = dv

 

DataView建构函式的第三个版本表示使用指定的DataTable、RowFilter、Sort和DataViewRowState,来初始化DataView类别的新执行个体。

 

以下的程序代码它示范如何使用第三个版本的DataView建构函式来建立DataView对象,以便筛选和排序数据集内之「章立民工作室」数据表的数据列,并将DataGridView控件绑定至此DataView。我们发现,DataGridView控件只会显示出目前薪资大于49000元的员工数据,并且数据会依照目前薪资由高至低排列:

 

SqlDataAdapter1.Fill(Ds章立民工作室, "章立民工作室")

建立 DataView 对象
Dim dv As DataView = New DataView( _
                             Ds章立民工作室.章立民工作室, _
                             "目前薪资> 49000", _
                             "目前薪资 DESC", _
                             DataViewRowState.CurrentRows)
将 DataGridView 控件绑定至 DataView

Me.DataGridView1.DataSource = dv

 

在此要特别提醒大家,当DataView被建立时,以及当Sort、RowFilter或RowStateFilter属性有任何一个被修改时,都会重新建立DataView的索引。此意味着,如果您希望享有最佳的效能,应该在建立DataView时,直接于建构函式中指定排序顺序或筛选条件。如果您于建立DataView时并未直接于建构函式中指定排序顺序或筛选条件,而是于建立DataView对象之后再设定其Sort、RowFilter或RowStateFilter属性,将会导致DataView的索引被重新建立,而使得索引至少被建立两次。

 

使用DataTable的DefaultView属性

 

DataTable的DefaultView属性会传回一个以此DataTable作为来源数据表的DataView对象,您便让您去排序、筛选、与搜寻DataTable中的数据列。如果您所建立的DataView要显示出DataTable中的所有数据列并依照自然顺序来排列,则使用DataTable的DefaultView属性来建立DataView将是非常直接且便利的方式。

 

以执行画面如图表1所示的程序而言,它使用DataTable的DefaultView属性来建立DataView,以便一开始能够于DataGrid控件中显示出来源数据表的所有数据列,并让使用者在执行阶段通过DataView来动态筛选数据。兹将程序代码列示如下:

 

DataView 对象的类别层级宣告
Private dv As DataView

Private Sub DemoForm5_Load(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles MyBase.Load
  FillComboBoxDepartment()

  SqlDataAdapter1.Fill(Ds章立民工作室, "章立民工作室")

  建立 DataView
  dv = Ds章立民工作室.章立民工作室.DefaultView

  显示 DataView 中的数据列数目
  txtRowCount.Text = dv.Count.ToString

  将 DataGridView 控件绑定至 DataView
  Me.DataGridView1.DataSource = dv
End Sub

Private Sub FillComboBoxDepartment()
  建立数据命令对象(亦即 SqlCommand 对象)
  Dim foxCMD As New SqlCommand
  foxCMD.Connection = SqlConnection1
  foxCMD.CommandText = "SELECT DISTINCT 部门 FROM dbo.章立民工作室"

  开启连接
  SqlConnection1.Open()

  Using myReader As SqlDataReader = foxCMD.ExecuteReader()
     If myReader.HasRows Then
          While myReader.Read()
              ComboBoxDepartment.Items.Add(myReader.GetSqlString(0))
          End While
      End If
  End Using
  ComboBoxDepartment.SelectedIndex = 0
End Sub

Private Sub btnFilter_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnFilter.Click
  dv.RowFilter = "部门= " & _
    ComboBoxDepartment.SelectedItem.ToString() & ""
  显示 DataView 中的数据列数目
  txtRowCount.Text = dv.Count.ToString
End Sub

http://www.cnblogs.com/liminzhang/archive/2006/10/23/537518.html


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·J2EE平台介绍-JSP教程,J2ME开发
·自己制作友好的页面“确认对话框”-ASP教程,ASP应用
·DataAdapter是如何更新数据库数据的?-.NET教程,数据库应用
·jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet
·企业Java技术开发技巧2则-JSP教程,Java技巧及代码
·刚刚整理好-汉字转拼音缩写的函数-.NET教程,评论及其它
·关于数据返回给调用页面-ASP教程,数据库相关
·如何使用C#压缩文件及注意的问题!-.NET教程,C#语言
·数据库安装程序-.NET教程,数据库应用
·DataGrid的自定义分页UserControl-.NET教程,数据库应用
最新文章
·王通:网站推广的18种秘笈_营销推广
·什么是mfa,以及停止mfa的好处_网赚技巧
·google adsense 域名保护功能是否作恶_网赚技巧
·关于无效点击-adsense团队资深专员如是说_网赚技巧
·google adsense将以人民币支付_站长访谈
·bbmao的神秘配方:打破中文聚类搜索的低迷_站长访谈
·你的网站为什么粘不住流量?_站长心得
·决定网站成败重要的六个因素_站长心得
·widnows vista是吃内存大户 优化vista攻略_windows vista
·首页所应该达到的几个目标(1)_站长心得
相关主题
  • ado.net在开发中的部分使用方法和技巧_ado.net应用
  • ado.net执行oracle 存储过程_ado.net应用
  • ado.net 如何读取 excel_ado.net应用
  • ado.net快马加鞭_ado.net应用
  • ado.net数据库连接_ado.net应用
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭