关于combobox的数据绑定问题(输入字符串格式不正确),但是不知道原因,请高手帮忙

anuo06 2006-10-06 05:46:11
在窗体初始化的时候的正确代码
int iGrpNum=int.Parse(this.lBox_Group.SelectedValue.ToString());//这个parse是正确的
string getDanciCurntGrp="select danci from "+this.selectTable+" where groupNum="+iGrpNum;
SqlDataAdapter sqlCurntDanci=new SqlDataAdapter(getDanciCurntGrp,this.sqlConnection1);
sqlCurntDanci.Fill(dataSet1,"tbGrpDanci");
this.lBox_danci.DataSource=dataSet1;
this.lBox_danci.DisplayMember="tbGrpDanci.danci";
this.lBox_danci.ValueMember="tbGrpDanci.danci";

在响应事件的时候的代码,这一段代码,老是提示说输入字符串格式不正确,但这段代码是拷的初始化的代码呀
string strGrpNum=this.lBox_Group.SelectedValue.ToString().Trim();
int intGrpNum;
intGrpNum=int.Parse(strGrpNum);//出错行

单步跟踪了一下,发现strGrpNum在后段代码的值是:"System.Data.DataViewManagerListItemTypeDescriptor"

库中数据是整型


...全文
627 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
anuo06 2006-10-07
  • 打赏
  • 举报
回复
搞定了,感觉好象那个selectedIndexChanged事件是在数据将要绑定的时候就触发,因此,在我做多个listbox连动的时候,还没有给它初值,就触发了事件,当然在这个事件中是取不到值的.我是做了一个布尔变量,直到初始化完全结束才允许事件里边的代码执行,这样就没有问题了.但是,我不明白为什么会在值还没有改变的时候触发这个changed事件???
anuo06 2006-10-07
  • 打赏
  • 举报
回复
to:knight94
我发现,在程序运行的时候,是先执行的selectedIndexChange事件中的代码,而我执行初始化绑定的函数是在这个事件之后,
InitializeComponent();
this.dataBind();
那么这么说应该是在这个事件中进行绑定初始化了???我先试试,不行的话还要拜托大家帮忙想一想
anuo06 2006-10-06
  • 打赏
  • 举报
回复
字符串连接没有问题,是后来改了的,问题应该不在这里,是转不成int,但是现在就是如何才能取到int值
Knight94 2006-10-06
  • 打赏
  • 举报
回复
在lBox_danci绑定之后,设置一个初值
namhyuk 2006-10-06
  • 打赏
  • 举报
回复
lBox_Group不要手动输入什么再选择。
让用户只能通过下拉选择。
myh0305 2006-10-06
  • 打赏
  • 举报
回复
你每一步都追踪一下, 先看看string型时的值是什么
看能否专成int型的
myh0305 2006-10-06
  • 打赏
  • 举报
回复
string getDanciCurntGrp="select danci from "+this.selectTable+" where groupNum="+iGrpNum;

这句代码不正确, 你上面定义是:int iGrpNum
这个字符串连接有问题
anuo06 2006-10-06
  • 打赏
  • 举报
回复
private void lBox_Group_SelectedIndexChanged(object sender, System.EventArgs e)
{
try
{
string strGrpNum=this.lBox_Group.SelectedValue.ToString().Trim();
int intGrpNum;
intGrpNum=Convert.ToInt32(this.lBox_Group.SelectedValue.ToString().Trim());
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
就是这个事件了,就是在取的时候取不出来,但别的我用同样的控件就可以,不过那个是取的字符串类型的
Knight94 2006-10-06
  • 打赏
  • 举报
回复
你在什么事件进行处理的
anuo06 2006-10-06
  • 打赏
  • 举报
回复
如何给它设定初始值啊,那个初始化里边有啊,就是我在激发这个事件的时候已经是有值的应该,就是那第一段代码,但是在事件里最开始的执行就取不到值

111,130

社区成员

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

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

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