VB.NET处理数据行的方法详解

  对于编程人员来说,运用VB.NET能给他们带来好处是不言而喻的。那么它的哪些优点能将编程人员的眼光吸引过去呢?我们今天就可以通过对VB.NET处理数据行的一些相关操作方法的认识,来体验这一语言给我们带来的好处。

  Windows窗体中的数据绑定列表框和组合框很节省时间。典型的代码如下(假定已经建立了SqlDataAdapter或者其它部件获取数据):


Dim ds As New DataSet()   
SqlDataAdapter1.Fill(ds,
 "Customers")   
ListBox1.DataSource = 
ds.Tables("Customers")   
ListBox1.DisplayMember = 
"CompanyName"  
ListBox1.ValueMember = 
"CustomerID"

  

 

  在这种情况下,VB.NET处理数据行的代码使用Northwind数据库的顾客记录工作。DisplayMember属性设置为你希望用户在 列表框中看到的记录字段,它是customers表的CompanyName.通常ValueMember属性设置为数据表中的一个键字段,对于 customer来说是CustomerID.一旦用户选择了列表框中的一行,很容易使用列表框的SelectedValue属性获得键字段:


  MsgBox(ListBox1.SelectedValue)

  但是有可能需要一个与被选择项相关的整个数据行对象的引用。例如,如果被选择的行需要被删除,就不知道键了。你需要一个数据行的引用以使用Delete方法。

  典型的Visual Basic开发者通常这样想:"我已经得到了该行的键了,我将编写一些逻辑来查找使用该键的行".这样可以实现,但是有更好的实现方法。可以使用一行代码获取与列表框中选项关联的数据行:


Dim dr As DataRow = 
CType(ListBox1.SelectedItem, 
DataRowView)。Row 

  通常该逻辑不会凭直觉出现,即使对经验丰富的开发者。为了解释这是怎样实现的,我把上面的一行拆成几行,下面的VB.NET处理数据行代码与上面代码的功能相同:


Dim drv As DataRowView   
drv = CType(ListBox1.
SelectedItem, DataRowView)   
Dim dr As DataRow   
dr = drv.Row  

  DataRowView类是数据行的包装,它被多个Windows窗体控件使用。它使得显示与控件中的数据行相关的数据更加容易。当列表框被数 据绑定到数据表时(假定列表框中的有些行当前被选定了),列表框的SelectedItem属性保存了一个DataRowView对象。

  这意味着我们能把列表框的SelectedItem属性转换到DataRowView对象,这就是上面代码中的第二行实现的。接着DataRowView暴露一个Row属性,它指向被包装的数据行。上面的代码声明了一个数据行并设置了Row属性。

  转换对象的类型以访问它的接口的技术在Visual Basic 6.0中不是经常使用,但是在Visual Basic .NET中这是经常的。有了上面的例子后,大多数有经验的开发者迅速跟上了这种技术。

  数据行的引用(dr)可用于用任何方式维护行。访问数据行中的任何特定字段是可行的。行中的数据可以被改变,能使数据行的Delete方法把该行标识为删除,或者从数据表的行集合中删除该行。下面的代码标识删除了一行:


  dr.Delete()

  使用主键(由ListBox.SelectedValue返回)查找下层数据行的方法需要很多代码,要花很长时间,执行起来更慢。对于刚开始使 用Visual Basic .NET的程序员来说花几个小时编码是很正常的。理解上面的VB.NET处理数据行技术节约了很多时间,更简单、容易维护代码。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-626238/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-626238/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值