利用comboBox进行组合查询的怪事

keardy 2007-01-24 10:20:12
两个comboBox的datasource都是指定为同一来源,即一个表的所有列信息

让用户可以选择两个条件进行查询

并没有定义类似于SelectedIndexChanged之类的事件,却发生了一件怪事:

随便更改哪个comboBox的选择,却使得另外一个comboBox的值也发生了改变(两个comboBox的值变成一样)

不知道大家遇过没有,C# 2003环境下面的问题
...全文
197 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keardy 2007-01-25
  • 打赏
  • 举报
回复
我是这样指定的(数据的来源是Excel,不是DB):
string[] a = new string[OleDsExcle.Tables[0].Columns.Count];
for(int i=0;i<a.Length;i++)
{
a[i] = OleDsExcle.Tables[0].Columns[i].ColumnName;
}
comboBox1.DataSource = a;
comboBox2.DataSource = a;

我想知道这样为什么不行。

请问kitten_scratch,你是怎么解决的?
liujia_0421 2007-01-25
  • 打赏
  • 举报
回复
try..

string[] a = new string[OleDsExcle.Tables[0].Columns.Count];
for(int i=0;i<a.Length;i++)
{
a[i] = OleDsExcle.Tables[0].Columns[i].ColumnName;
}

string[] b = new string[a.Length];
a.CopyTo(b, 0);
comboBox1.DataSource = a;
comboBox2.DataSource = b;
liujia_0421 2007-01-25
  • 打赏
  • 举报
回复
如果你两个ComboBox绑定的是同一个数据源,就会出现这样的情况....
csShooter 2007-01-25
  • 打赏
  • 举报
回复
一个DataTable当然使用同一指针记录!。。。。

kitten_scratch 2007-01-24
  • 打赏
  • 举报
回复
正常的。上次我做datagrid的时候也出现过类似的问题的
magicsnake 2007-01-24
  • 打赏
  • 举报
回复
你应该将另一个数据源指定为他的克隆或者拷贝 dt.Clone() or dt.Copy()

110,477

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧