comboBox的id返回System.Data.DataRowView
关系到ComboBox的DataSource,DisplayMember和ValueMember属性的设置顺序的问题。
ComboBox的DataSource属性为object类型,但是需要实现IListSource接口的类型。
当把DataTable赋值给该属性后,如果此时没有指定ComboBox的DisplayMember和ValueMember属性的话,
这时获得的ComboBox的SelectValue属性将是System.Data.DataRowView的一个实例。
据此推测DataTable中实现的IListSource接口中的GetList()方法应该返回的是DataTable的
DefaultView,也就是DataView的一个实例是DataRowView的集合。而因为没有指定DisplayMember和ValueMember
属性,所以ComboBox直接把DataView中的每一个DataRowView实例填充到列表中。
这样的话就可能在ComboBox的SelectedIndexChanged事件处理中产生错误。
为了避免这个问题应该先设置DisplayMember和ValueMember属性,然后再设置DataSource属性。
避免先设置DataSource属性。
combobox.ValueMember = "id";
combobox.DataSource = dt;
combobox.DisplayMember = "name";
比如在combobox_SelectedIndexChanged事件需要获取id,就要将id放在DataSource上面,否则获取不到
参考:
http://www.cnblogs.com/liuhonghai/archive/2010/03/31/1701211.html
http://blog.csdn.net/lubiaopan/article/details/5915774
comboBox的id返回System.Data.DataRowView的更多相关文章
- (转)Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题
原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System ...
- Combobox出现System.Data.DataRowView的原因
这种情况多次遇到.有时候明明完全相同的代码,在不同的场景运行却是两种结果, 其中一种坏的结果就是 comboBox所有的项都显示为System.Data.DataRowView 今天仔研究了一下,应该 ...
- 也谈解决Combobox绑定数据后取值出现System.Data.DataRowView的问题
刚才遇到一个怪现象:同一个窗口,同一张表,通过第一个Combobox值的改变,动态绑定第二个Combobox,结果出现一个怪现象,第一个Combobox有的值改变第二个Combobox一切正常,有几个 ...
- winform Combobox出现System.Data.DataRowView的解决的方法
个人总结: 1.触发了SelectedIndexChanged事件时:comboBox1.DataSource = dt;要放在comboBox1.SelectedIndex = 0;的上面 comb ...
- DropdownList控件绑定数据源显示system.data.datarowview的问题
.net开发的时候经常需要用到在后台取数据再绑定到控件的问题,通常只需要连接数据库,从数据库取出数据,放到Dataset里面,然后再设置控件的DataSource为这个Dataset,然后再datab ...
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...
- 在mvc返回JSON时出错:序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用 的解决办法
在MVC中返回JSON时出错,序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用. public ActionResul ...
- csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别
ODP.NET: 引用: using Oracle.DataAccess; //Oracle g 11.2.0 using Oracle.DataAccess.Client; using Oracle ...
- C++: read SQL server data using System::Data::SqlClient
stdafx.h: // stdafx.h : include file for standard system include files, // or project specific inclu ...
随机推荐
- css 常用样式命名规则
大家在写css的时候,对一些html标签起一个合适的名字是个很头疼的事情,现在给大家分享项目中常用的名字供参考. 外套:wrap ——用于最外层 头部:header ——用于头部 主要内容:mai ...
- c++中vector的学习
根据各种做题,发现数组并不是很适用于各种情况,当涉及到内存占用的时候,数组可能就没有vector的优势了,而vector,动态数组,比较适合某些情况. 接下来看看比较基本的vector用法: 1 #i ...
- (一)MII/MDIO接口详解
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...
- 关于协程的学习 & 线程栈默认10M
先看的这篇文章:http://blog.csdn.net/qq910894904/article/details/41699541 以nginx为代表的事件驱动的异步server正在横扫天下,那么事件 ...
- Android的启动模式(上)
1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动作进行跳转设计.比如说,一个电话 ...
- PHP SPL标准库之SplFixedArray使用实例
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 看看我本机的Benchmark测试: i ...
- 接收ET采集器数据页面
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="u ...
- iOS开发 判断扫码是否为有效网址
- (BOOL)achiveStringWithWeb:(NSString *)infor { NSString *emailRegex = @"[a-zA-z]+://.*"; ...
- English word
第一部分 通过词缀认识单词 (常用前缀一) 1.a- ①加在单词(形容词)或词根前面,表示"不,无,非" acentric [ə'sentrik] a 无中心的(a+centr ...
- Growing转化的每一步(笔记整理)
渠道流量监控中,如何将劣质流量和优质流量区分开来? 劣质流量总会有有一些不同于其他正常渠道的特征,比如在同一个时间中大量集中访问.使用的硬件设备比较固定.使用特定的浏览器等. 实际案例:去年有一些 A ...