奇怪为什么不执行下面的两句代码而直接跳过了呢?

my_edxp 2008-11-30 09:35:12
private void button11_Click(object sender, EventArgs e)
{
try
{
BookName =textBox27.Text.Trim();
BookTypeID = comboBox2.SelectedValue.ToString().Trim();
这两句不执行呀//DataSet ds = winLogin.GetBookInfo(BookTypeID, BookName);
这两句不执行呀//dataGridView5.DataSource = ds.Tables[0];
}
catch
{
MessageBox.Show("没有您查找的书!");
}
}
...全文
236 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackfrank078 2012-03-21
  • 打赏
  • 举报
回复
try{
m_Edit.GetWindowText(CellText);
SetItemText(m_Row,m_Col,CellText);
if (Name!=CellText&&CellText!="")
{
if (Name!="")
{
pdlg->ExcuteSQL(ID,CellText,0x01);
}
else
{
pdlg->ExcuteSQL(ID,CellText,0x00);
}
}
else
{
if(strcmp(Name,CellText))//代码不执行,直接跳过
{

int w=strcmp(Name,CellText);//代码不执行,我用这句来看它的返回值

pdlg->ExcuteSQL(ID,CellText,0x02);//但它却执行这一句
}
}
}
catch(...)
{
m_Edit.DestroyWindow();
}
}
m_Edit.DestroyWindow();
bEditing=false;
VS2003调试问题,这段代码,有两行代码直接跳过,没执行?好像也没有异常,什么问题啊
孤独侠客123 2008-12-01
  • 打赏
  • 举报
回复

if (null != comboBox2.SelectedValue)
{
BookTypeID = comboBox2.SelectedValue.ToString().Trim();

DataSet ds = winLogin.GetBookInfo(BookTypeID, BookName);
dataGridView5.DataSource = ds.Tables[0];
}
chtyu1981 2008-12-01
  • 打赏
  • 举报
回复
很显然,你的程序异常了
周鹏程 2008-11-30
  • 打赏
  • 举报
回复
同意上面的
孤剑 2008-11-30
  • 打赏
  • 举报
回复
如下修改代码吧。
private void button11_Click(object sender, EventArgs e)
{
try
{
BookName =textBox27.Text.Trim();
BookTypeID = String.Empty;
if (null != comboBox2.SelectedValue)
{
BookTypeID = comboBox2.SelectedValue.ToString().Trim();
}
DataSet ds = winLogin.GetBookInfo(BookTypeID, BookName);
dataGridView5.DataSource = ds.Tables[0];
}
catch (Exception exp)
{
MessageBox.Show("没有您查找的书!");
// 系统日志记录的类
CustomeErrorLoger.Log(exp);
}
}
net5i 2008-11-30
  • 打赏
  • 举报
回复
搂主没明白?

那我说清楚些吧,comboBox2.SelectedValue这个属性是不常用的,主要用来访问绑定数据源字段的,
一般和DataSource,DisplayMember等属性配合使用的;
SelectedItem属性用来访问,自己加到列表里面的对象数据;
SelectedText属性一般用来访问,放到列表里面的纯文本数据,也可以访问对象数据(会自动调用对象的ToString方法)。
jyhanjian 2008-11-30
  • 打赏
  • 举报
回复
很显然,你的程序异常了,你的问题,我们对着这几句代码也看不出来,我想你应该好好检查下
diki330 2008-11-30
  • 打赏
  • 举报
回复
建议楼主不要直接就 catch
最好在后面指定一下
否则这样不管有什么异常都不会报出来
或者直接


catch(Exception e)
{
MessageBox.Show(e.ToString());
}
看一下是什么异常
net5i 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 my_edxp 的回复:]
可是我是根据图书类型(booktypeid)和书名进行查询的呀!当booktypeid为空时,模糊查询呀!
[/Quote]
搂主的这个值comboBox2.SelectedValue=null,所以执行.ToString()的时候会有异常
然后就跳到catch里去了,搂住可以再看看
half_bucket 2008-11-30
  • 打赏
  • 举报
回复
请问你是用的那个VS版本的开发工具,vs2003,么,看看事件是否丢了。
half_bucket 2008-11-30
  • 打赏
  • 举报
回复
BookTypeID = comboBox2.SelectedValue.ToString().Trim();
======================================================
很明显,这句代码获得的是comboBox里面的BookTypeID,而楼主想要通过这个ID获取数据
如果用comboBox2.text的值将无法获取对应的数据

try
{
BookName =textBox27.Text.Trim();
BookTypeID = comboBox2.SelectedValue.ToString().Trim();
DataSet ds = winLogin.GetBookInfo(BookTypeID, BookName);
dataGridView5.DataSource = ds.Tables[0];
}
catch
{
MessageBox.Show("没有您查找的书!");
}

这里已经catch异常,只要点击按钮进来了,会执行到这里,设个断点直接调试
my_edxp 2008-11-30
  • 打赏
  • 举报
回复
可是我是根据图书类型(booktypeid)和书名进行查询的呀!当booktypeid为空时,模糊查询呀!
my_edxp 2008-11-30
  • 打赏
  • 举报
回复
因为菜,所以这样!555555555 ~O~

pinyu 2008-11-30
  • 打赏
  • 举报
回复
不过你的程序怎么这样设计啊?用异常来显示结果?
pinyu 2008-11-30
  • 打赏
  • 举报
回复
产生异常了?
孤独侠客123 2008-11-30
  • 打赏
  • 举报
回复
comboBox2.SelectedValue == null
直接异常了吧.呵呵到catch里面运行去了
net5i 2008-11-30
  • 打赏
  • 举报
回复
很明显嘛:搂主这一句有异常,跳到catch里去了
BookTypeID = comboBox2.SelectedValue.ToString().Trim();
搂主改成comboBox2.Text.Trim();看看
长沙三毛 2008-11-30
  • 打赏
  • 举报
回复
comboBox2.Text.Trim()看看

111,131

社区成员

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

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

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