private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //连接数据库
            SqlConnection myconn = new SqlConnection();
            myconn.ConnectionString = "Data Source=xy;Initial Catalog=geography;Integrated Security=True;";
            myconn.Open();
           
           string  selectStr = "select * from dbo.地理特征 where ID='" + comboBox1.SelectedValue.ToString() + "'";//报错行            SqlCommand mycomm = new SqlCommand(selectStr, myconn);
            SqlDataReader sdr = mycomm.ExecuteReader();
             try
            {
                if (sdr.Read())
                {
                    pictureBox1.Load(sdr["Adress"].ToString());
                }            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
未将对象引用设置到对象的实例。
该如何解决呢??

解决方案 »

  1.   

    要判断一下是否选中了。函数最开始
    if(comboBox1.SelectedValue == null) return;
      

  2.   

    comboBox1.SelectedValue.ToString() 
    当这句里面的值为空时,会出现这种状况的.
    具体什么原因我不知道.
    我也是菜鸟```
      

  3.   

    我comboBox1中一直都有值的……
      

  4.   

    if (comboBox1.SelectedValue==null)
       return;
    因为如果没有选中项,则调用.ToString()则是没有这个方法,则会报错!
      

  5.   

    我点击comboBox1进行选择,都正常,只是在我关闭Form框的时候,就会提醒我出错……
      

  6.   

    呵呵,谢谢各位 ,问题解决了~~
    但是还是不明白,我 comboBox1中一直都有值的,难道是初始的时候是没有选择的原因?