在进行数据绑定的时候,我们常常要用到DataView。比如要把一个DataSet绑定到GridView,只需要指定其DataSource为DafaultView就行了,如果需要对数据集进行特殊处理,则需要定义一个DataView对象,利用其丰富的属性和方法,可以轻松地获取我们想要的结果。
当然,编程一个充满技巧的工作,需要我们不断地总结经验。对于如何从DataView中获取行数据这一看似简单的问题,也存在一些值得研究的地方。从字面上来看,DataView是DataTable的视图,我们可对它进行如同对待数据库中的表一样的各种操作,如添加、删除、排序等。RowFilter可能是比较常用的方法了,只要设置一些类似于sql的字串,就可以筛选我们想要的数据了。
举个例子:
DataView dv = GetDateTable().DefaultView;
dv.RowFilter="id=12";
在这个例子中,我们先获取了一个DataTable并得到其默认的DataView,然后筛选其中id=12的行。也就是说,目前dv中只有一行数据了。接下来我们想获取该行中属性为price的值,应该怎么做呢?就其直观的情况我们可以这样:dv.Table.Rows[0]["price"].ToString();这种方法虽然很长,但意思很清晰。还有另一种方式也可以做到:dv[0]["price"].ToString();因为dv[i]方法可以为获取到指定的行记录,接下来的["price"],通过指定属性名便可以获取相应列的值了。第二种方法比较短,因为不必获取其Table,效率估计应该会更高一些。
当然,编程一个充满技巧的工作,需要我们不断地总结经验。对于如何从DataView中获取行数据这一看似简单的问题,也存在一些值得研究的地方。从字面上来看,DataView是DataTable的视图,我们可对它进行如同对待数据库中的表一样的各种操作,如添加、删除、排序等。RowFilter可能是比较常用的方法了,只要设置一些类似于sql的字串,就可以筛选我们想要的数据了。
举个例子:
DataView dv = GetDateTable().DefaultView;
dv.RowFilter="id=12";
在这个例子中,我们先获取了一个DataTable并得到其默认的DataView,然后筛选其中id=12的行。也就是说,目前dv中只有一行数据了。接下来我们想获取该行中属性为price的值,应该怎么做呢?就其直观的情况我们可以这样:dv.Table.Rows[0]["price"].ToString();这种方法虽然很长,但意思很清晰。还有另一种方式也可以做到:dv[0]["price"].ToString();因为dv[i]方法可以为获取到指定的行记录,接下来的["price"],通过指定属性名便可以获取相应列的值了。第二种方法比较短,因为不必获取其Table,效率估计应该会更高一些。