C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法_C#教程

由于毕业后工作没有对接到专业问题,导致四五年没有碰过Winform程序了。突然由于工作问题,为了方便自己,所以想自己写写小winform小软件,用于自己使用。在使用ComboBox控件时,遇到了重新绑定赋值出问题的情况。

错误代码如下:

if (CustomerBLL.select().Rows.Count > 0)
{
cbTcid.Items.Clear();
cbTcid.DataSource = CustomerBLL.select();
cbTcid.ValueMember = "Cid";
cbTcid.DisplayMember = "Cpname";
}
else
{
return;
}

正常情况下,对于数据重新赋值的或者绑定数据源的时候,为了防止数据出现问题,都会先清空原来数据,所以就这样写了,但是没有相当恰恰这样写就出现问题了。 于是在网上找了一下。发现有人是这样操作的。【如下】

网上查找方法如下:

if (CustomerBLL.select().Rows.Count > 0)
{
// cbTcid.Items.Clear();
if (cbTcid.Items.Count > 0)
{
cbTcid.DataSource = null;
cbTcid.Items.Clear();
}
cbTcid.DataSource = CustomerBLL.select();
cbTcid.ValueMember = "Cid";
cbTcid.DisplayMember = "Cpname";
}
else
{
return;
}

但是最后我尝试了一下,在下次绑定数据源的时候,不清空上次的数据,是否可以呢?于是成功了。

if (CustomerBLL.select().Rows.Count > 0)
{
/*cbTcid.Items.Clear();
if (cbTcid.Items.Count > 0)
{
cbTcid.DataSource = null;
cbTcid.Items.Clear();
}*/
cbTcid.DataSource = CustomerBLL.select();
cbTcid.ValueMember = "Cid";
cbTcid.DisplayMember = "Cpname";
}
else
{
return;
}

而且最主要的是,在绑定数据源之前的数据,也自动清空了。是否真是这样呢,还是如何呢?难道说这个ComboBox控件在下次绑定时候回自动清空,其他控件呢?欢迎大家讨论,而且此方法是否会出现代码不规范呢?由于我的是小数据,遇到大数据是否可行呢,希望大家说说自己的建议。

以上所述是小编给大家介绍的C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索combobox
datasource
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-10-03 07:51:22

C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法_C#教程的相关文章

解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”

很少写WinForm程序第一次使用ListBox控件就遇到了比较恶心的问题.因为我不想手 动绑定ListBox中的Item就使用了DataSource,但是当我进行一些添加.删除操作时就报 了这个错"设置DataSource属性后无法修改项集合".实在太恶心了,不知道 设计ListBox的人是怎么想的给了DataSource属性却不能随便更改,而我要实现在一个 ListBox中选中几项然后放到另一个ListBox中的功能,不能用DataSource的话太麻烦了. 上博客园查了下没有找到

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法_实用技巧

当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为"空" 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内容,这时就比较尴尬了. 刚开始是换成Html 里的 <input type="text" readonly="readonly" > ,不过后来发现这个工作量是很大的, 所以网上搜了下,没找出Text

login控件“您的登录尝试不成功。请重试”的解决方法

原文:login控件"您的登录尝试不成功.请重试"的解决方法     遇到login控件"您的登录尝试不成功.请重试"报错之后,在网上找了很久,也按照如下帖子设置了 applicationName="/",但是把网站发布了之后,登录依旧出现"您的登录尝试不成功.请重试"的错误.   现象1.asp.net使用自定义sql server身份验证数据库,在A机器新增用户A,可以登录成功.把程序复制到B机器上,B机器读不到A用户信息

数据绑定控件:DataSource属性

数据绑定控件,都有DataSource属性,用于指定数据源.通常情况下,也是比较常用的就是数据源是数据表(DataTable),其实DataSource的范围很广,我们可以在深入研究的同时,改善我们的程序. 有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的"温故而知新"的真正内涵. 常用的数据绑定控件有:Repeater.DataList.GridView.DetailsView等,在这里我拿R

C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法_C#教程

本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法.分享给大家供大家参考,具体如下: 在Winform中如果将一个透明图片放在窗体上能正常显示透明,但是如果将该图片放在另一个控件上会导致不能显示透明效果. 解决这种情况,可以采取在控件上使用GDI+绘画出透明图片. 这里我们就以一个pictureBox2控件上面重叠一张png透明图片为例: 我们只需要给pictureBox2控件添加Paint事件,然后对png透明图片进行绘制即可,代码如下: private voi

Visual C# 2005中让ComboBox控件显示出多个数据源属性

之前,我们在"如何使用简单绑定来显示多个数据源属性"一节中就曾经提到过,简单绑定并不直接支持数据源属性串连.同样,ComboBox控件也不直接支持数据源属性串连.也就是说,在默认状态下,ComboBox控件只能绑定至数据源的某单一属性,而不能绑定至属性串联后的结果.虽然不能直接做到,但是却可以间接做到,解决的方法就是利用ComboBox控件的Format属性来串联多个数据源属性. 程序范例1 图 3-44 图3-44所示的是程序范例CH3_DemoForm028.cs的执行画面,其中C

新手对于combobox控件的一些问题

问题描述 从数据库取值用DataSource绑定给combobox,name设置给DisplayMember,id给ValueMember,但是数据库端的id是不连贯的,所以如何根据数据库端的id来显示combobox的内容呢,通过SelectedIndex的话默认是从零开始不合适,求教,谢谢. 解决方案 解决方案二:使用combobox控件的SelectedValue属性设置解决方案三:读取数据库数据之后,用List集合包装一下,再绑定到combobox,这样可以自己构造一个字段作为combo

ComboBox 控件的用法教程_vbs

前面我们了解了ListBox(列表框)控件的使用,在vb.net中还有一个与ListBox控件十分相似的控件--ComboBox 控件,也叫组合框.组合框控件包括两个部分,一部分是上部可以输入列表项的文本框:另一部分是位于文本框下方的列表框,用于显示用户可以从中选择的项的列表 ComboBox 控件和ListBox 控件在功能上很相似,很多情况下,这两个控件是可以互换使用的,但是还是有某种特定的环境下只适合使用一种控件的情况. 通常,ComboBox控件适合于建议用户选择控件所列举的选项.同时又

如果数据被绑定到控件之后,修改控件上的数据会同时修改数据库里的数据吗?

问题描述 如上,如果不可以的话应改这么做,有什么方法,请大家指点 解决方案 解决方案二:会的设置相关属性~解决方案三:不会要写更新数据库数据的代码解决方案四:不加代码能改变控件的内容吗?解决方案五:一般不会,但是有些控件设置了属性以后会随着更新的.解决方案六:要看你怎么绑定的