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("没有您查找的书!");
            }        
        }

解决方案 »

  1.   

    很明显嘛:搂主这一句有异常,跳到catch里去了
    BookTypeID = comboBox2.SelectedValue.ToString().Trim();
    搂主改成comboBox2.Text.Trim();看看
      

  2.   

    comboBox2.SelectedValue ==  null
    直接异常了吧.呵呵到catch里面运行去了
      

  3.   

    可是我是根据图书类型(booktypeid)和书名进行查询的呀!当booktypeid为空时,模糊查询呀!
      

  4.   

    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异常,只要点击按钮进来了,会执行到这里,设个断点直接调试
      

  5.   

    请问你是用的那个VS版本的开发工具,vs2003,么,看看事件是否丢了。
      

  6.   

    搂主的这个值comboBox2.SelectedValue=null,所以执行.ToString()的时候会有异常
    然后就跳到catch里去了,搂住可以再看看
      

  7.   

    建议楼主不要直接就 catch
    最好在后面指定一下
    否则这样不管有什么异常都不会报出来
    或者直接
    catch(Exception e)
    {
       MessageBox.Show(e.ToString());
    }
    看一下是什么异常
      

  8.   

    搂主没明白?那我说清楚些吧,comboBox2.SelectedValue这个属性是不常用的,主要用来访问绑定数据源字段的,
    一般和DataSource,DisplayMember等属性配合使用的;
    SelectedItem属性用来访问,自己加到列表里面的对象数据;
    SelectedText属性一般用来访问,放到列表里面的纯文本数据,也可以访问对象数据(会自动调用对象的ToString方法)。
      

  9.   

    如下修改代码吧。
    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);
                }        
            }
      

  10.   


     if (null != comboBox2.SelectedValue)
         {
                        BookTypeID = comboBox2.SelectedValue.ToString().Trim();
               
                    DataSet ds = winLogin.GetBookInfo(BookTypeID, BookName);
                    dataGridView5.DataSource = ds.Tables[0];  
    }
      

  11.   

    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调试问题,这段代码,有两行代码直接跳过,没执行?好像也没有异常,什么问题啊