有时候我们须要在控件中绑定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问题解决的方法相关推荐

  1. ASP.NET dropdownlist绑定数据却显示System.Data.DataRowView

    问题: 在VS中用dropdownlist控件绑定数据,浏览时却在控件里显示System.Data.DataRowView,而不是要显示的数据,代码如下: public static DataSet ...

  2. 错误 1 “System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制...

    new DataRow 的方式: DataTable pDataTable = new DataTable();DataRow pRow = new DataRow(); 正确的方式: DataRow ...

  3. C# DataTable(System.Data)

    环境:Visual Studio 2015,.NET Framework 4.0 本文参考MSDN : https://docs.microsoft.com/zh-cn/ DataTable Data ...

  4. 浅谈 System.Data.DataRowCollection 类

    我们来看看以下程序吧: 01: using System; 02: using System.Data; 03: using System.Linq; 04: 05: namespace Skyiv. ...

  5. WPF DataGrid 绑定 DataTable

    DataGrid 绑定 DataTable: 界面: <Window x:Class="DataGridBindDataTable.MainWindow"xmlns=&quo ...

  6. C# 一个操作Oracle的简易工具类(通过System.Data.OracleClient)

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于本文 运行本文中的代码,需要 1)需要手动添加引用System.Data.OracleClient 在代码最前面加入这 ...

  7. DropDownList如何绑定DataTable,如何绑定DataSet

    dpDnUpMenu是我定义的DropDownList控件 如果直接使用下面的方式,则会出现如下错误 dpDnUpMenu.DataSource = menu_tbBll.GetPID() dpDnU ...

  8. 无法绑定由多个部分组成的标识符“System.Data.DataRowView”

    comboBox1_SelectedIndexChanged     方法 (省市联动项目练习) 在定义的sql语句中想通过之前定义的comboBox1.SelectedValue,通过获得他的值(非 ...

  9. rowspan不显示 wpf_wpf的datagrid绑定datatable列不自动更新解决方案

    wpf的datagrid绑定datatable列不自动更新 描述如下: 想利用程序实现显示NORTHWND.MDF中的所有表.listbox显示数据库中的表清单,选中listbox里面的一项以后,在d ...

最新文章

  1. mysql.data.dll win10_关于Linux和Windows下部署mysql.data.dll的注册问题》
  2. Spring MVC 流程图解析
  3. 电脑怎么打出冒号符号_Mac小技巧:教你如何在Mac电脑打出command?、option?等特殊符号...
  4. hibernate简单应用
  5. 小程序view设置背景图片_小程序商城分销功能设置技巧 设计方法
  6. mysql multi innobackupex,mysql之 Innobackupex(全备+增量)备份恢复
  7. 关于日志打印的几点建议以及非最佳实践
  8. C++中实现精度的控制和输出 showpoint<<或者fixed<<setprecision()用法
  9. 由超高压的超导体猜测超导的真相
  10. 网评计算机学校好,网评十大最痛苦专业:计算机、数学上榜
  11. mapxtreme 查找指定位置的图元
  12. win10官方原版iso镜像 下载地址
  13. 2款QQ空间首页好看的psd源码
  14. 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
  15. 云片短信平台java案例,Java使用云片网API发送短信验证码
  16. 安卓模拟ibeacon_Android BLE-iBeacon系列(二)扫描识别iBeacon设备
  17. 帆软公式如何用数据库字段_高考数学必背100招:如何用构造法求数列通项公式?...
  18. 【正点原子FPGA连载】第三十三章环境光传感器实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  19. 带你快速通过字节跳动面试,看看这篇文章吧!
  20. 解决Windows环境下PHP连接MySQL很慢的问题

热门文章

  1. 代谢组学在疾病诊断如何应用?
  2. 北斗导航 | 复杂环境下卫星导航算法(理论)
  3. 率土之滨鸿蒙之初,率土之滨:最记仇联盟?投诚玩家结算前被乱世,称是主盟要求...
  4. 如何完美的将对话框设置成无边框无标题栏样式?
  5. excel流程图分叉 合并_Excel和Visio联姻,自动生成跨职能流程图,还能用图标标记状态,太牛了!...
  6. C指针原理(43)-helloworld的C程序汇编剖析
  7. 【机器学习】关联规则代码练习
  8. 【NLP】情感分析:BERT vs Catboost
  9. 【学术相关】国内考博需要怎么准备?难度大吗?有什么建议?
  10. 【数据竞赛】Kaggle秘技,用Sigmoid函数做回归问题!