comboBox绑定数据的问题!!

nsi20141 2004-06-26 07:49:22
用combobox从数据库中绑定数据,我的做法是先用DataAdapter填充数据集(returntable表),因为绑定的数据要显示在combobox下拉框中,所以想把“请选择.....”填加到combobox中,我用的方法是代码中的插入方法,可是当把这段代码放在程序中时,出现了意外,当选择另一下来框是激发cmbWholeBox_SelectedIndexChanged事件,该事件中v[0]["ID_Bottle"]的值是cmbBottle下拉框中的SelectedValue值,如果v[0]["ID_Bottle"]值取cmbBottle.SelectedIndex=1是的值时(也就是returnTable数据集中第二行第一个字段中的数据),当出现上述情况的时候就跳到异常处理处,其它的情况一切正常

还有就是如果我把实现插入“请选择.....”的几行代码去掉,则上述异常就没有了
这个问题困饶我一段时间了
希望各位朋友帮我找找原因,看看是什么地方出的原因
System.Data.DataTable returnTable=new System.Data.DataTable();
daCommand.SelectCommand.Connection=cn;
daCommand.SelectCommand.CommandText=" SELECT ID_Wrappage, NA_Wrappage,VA_Capacity FROM MD_Wrappage WHERE NA_Class='箱'";
daCommand.SelectCommand.Parameters.Clear();
daCommand.Fill(returnTable);
//把“请选择.....”填加到combobox中 System.Data.DataRowr=returnTable.NewRow();
r["ID_Customer"]="";
r["NA_Customer"]="请选择...";
returnTable.Rows.InsertAt(r,0);

this.cmbBottle.DataSource=dtBottle;
this.cmbBottle.DisplayMember="NA_Wrappage";
this.cmbBottle.ValueMember="ID_Wrappage";

private void cmbWholeBox_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(this.cmbWholeBox.SelectedValue.ToString().Trim()!="")
{
System.Data.DataView v=new System.Data.DataView(this.dtWholeBox);
v.RowFilter="ID_Wrappage='"+this.cmbWholeBox.SelectedValue.ToString().Trim()+"'";
if(v.Count>0)
{
if(v[0]["ID_Bottle"]!=System.DBNull.Value)
{
this.cmbBottle.SelectedValue=v[0]["ID_Bottle"].ToString();
}
}
}
...全文
1050 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pisces007 2004-06-27
  • 打赏
  • 举报
回复
你把try
catch 去掉再运行
然后把错误的信息贴出来我看看
nsi20141 2004-06-27
  • 打赏
  • 举报
回复

r["ID_Wrappage"]="";
r["NA_Wrappage"]="请选择...";

这个让我贴错了
我在绑定之后,加了一条调试的语句
this.cmbBottle.DataSource=dtBottle;
this.cmbBottle.DisplayMember="NA_Wrappage";
this.cmbBottle.ValueMember="ID_Wrappage";
//调试语句,这个时候就出现问题了
this.cmbBottle.SelectedValue="ID_Wrappage列第一行的值" (如果为ID_Wrappage列的其它行的值则没有出现异常)
不知道是什么原因

pisces007 2004-06-27
  • 打赏
  • 举报
回复
一个是ID_Customer
一个是ID_Wrappage
pisces007 2004-06-27
  • 打赏
  • 举报
回复
r["ID_Customer"]="";
r["NA_Customer"]="请选择...";



this.cmbBottle.DisplayMember="NA_Wrappage";
this.cmbBottle.ValueMember="ID_Wrappage";

不匹配


nsi20141 2004-06-27
  • 打赏
  • 举报
回复
try catch去掉的话就没有错误提示了 只是当选择一个下拉框的值时另一个就不能跟着变了

有catch时的错误信息如下;
指定的参数已超出有效值的范围,参数名:“-2147483648”不是“index”的有效值
nsi20141 2004-06-27
  • 打赏
  • 举报
回复
问题已经解决了
请选择....是用select语句绑定的,上述的问题就没有

System.Data.DataRowr=returnTable.NewRow();
r["ID_Customer"]="";
r["NA_Customer"]="请选择...";
returnTable.Rows.InsertAt(r,0);
上述方法好象有问题,就是绑定后
this.cmbBottle.SelectedValue="ID_Wrappage列第一行的值" 这行出错,cmbBottle的items里没有 ID_Wrappage列第一行的值
不知道这是为什么!!!
nsi20141 2004-06-26
  • 打赏
  • 举报
回复
不知道我描述的够不够清晰
希望进来的朋友帮我看看

110,499

社区成员

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

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

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