欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > > 编程问答 >内容正文

编程问答

datasource绑定datatable.select()显示system.data.datarow问题解决的方法 -尊龙游戏旗舰厅官网

发布时间:2025/1/21 编程问答 5 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 datasource绑定datatable.select()显示system.data.datarow问题解决的方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

    有时候我们须要在控件中绑定datatable中设定条件过滤后的数据,此时,在winform环境中,一些控件不能正确绑定并显示数据内容。这是由于datatable.select()返回的是datarow[]类型的行数组。没有行列相关架构值。而控件如listbox、combobox等不能识别行数组中的列。读不到行列架构值,所以无法正常显示。

    解决的方法是用dataview进行转换,即在dataview中对datatable过滤数据。

dataview构造函数例如以下:

    dataview ( datatable dt,  string rowfilter,  string sorcolname,  dataviewrowstate)


    dt 用于获取或设置源

    rowfilter 获取或设置用于筛选在 dataview 中查看哪些行的表达式

    sorcolname 获取或设置 dataview 的一个或多个排序列以及排序顺序

    dataviewrowstate 具体取值及功能见下表:

 added一个新行。
 currentrows包含未更改行、新行和已改动行的当前行。 默认情况下。dataviewrowstate 项设置当前行。
 deleted已删除的行。
 modifiedcurrent已改动的原始数据的当前版本号(请參见 modifiedoriginal)。
 modifiedoriginal已改动的数据的原始版本号。(虽然此数据已被改动,它仍作为 modifiedcurrent 可用)。
 none无。
 originalrows包含未更改行和已删除行的原始行。
 unchanged未更改的行。

  count 在应用rowfilter后,获取dataview中的行数

    应用例子:

            datatable jgbjlx = getdatatable( "jgbjlx");
            jgbjlxcombobox.displaymember = "jgname";
            jgbjlxcombobox.valuemember = "id";
            jgbjlxcombobox.datasource = new dataview(jgbjlx , "id>0","id",dataviewrowstate.currentrows);

    使用dataview还能够依据行的状态设置dataviewrowstate,实现显示更改和已经删除的行、改动前的原始行、未更改的行等子集。

总结

以上是尊龙游戏旗舰厅官网为你收集整理的datasource绑定datatable.select()显示system.data.datarow问题解决的方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图