public partial class HuaJiaoForm : Form
    {
        //BingRen bingren=null;
        MainForm mainform;
        public HuaJiaoForm(MainForm mainform)
        {
            InitializeComponent();
            this.mainform = mainform;
        }        private void button4_Click(object sender, EventArgs e)
        {
            string name = this.textBox1.Text;
            string id = this.textBox2.Text;            if (HuaJiaDao.JianCeShenFen(name, id))
            {                BingRen bingren;
                
                this.label11.Text = "ok!";
                this.label11.ForeColor = Color.Blue;
                bingren = HuaJiaDao.QiTaXinXi(name, id);
                this.textBox3.Text = bingren.Feiyongleixing;//在这里总是显示未将对象引用设置到对象的实例
                this.textBox9.Text = bingren.Yaopinleixing;
            }
            else
            {
                this.label11.Text = "-_-!";
                this.label11.ForeColor = Color.Red;
            }
        }    下边的是dao包
public static BingRen QiTaXinXi(string name, string id)
        {
            BingRen bingren = null;            try
            {
                SqlConnection conn = Connect.getConnection();
                conn.Open();
                string sql = string.Format("select cid,cname,pid,feiyongleixing,yaopinleixing,numberid from 临时挂号表 where cname={0} and numberid={1}", name, id);
                SqlCommand command = new SqlCommand(sql, conn);
                SqlDataReader reader = command.ExecuteReader();
                reader.Read();
                bingren = new BingRen(int.Parse(reader[0].ToString()), reader[1].ToString(), int.Parse(reader[2].ToString()), reader[3].ToString(), reader[4].ToString(), reader[5].ToString());
                if (conn != null)
                {
                    conn.Close();
                }
            }
            catch
            {
            }
            return bingren;
        }各位希望帮忙,我是哪里错了,我发现我变成总是犯这个毛病,总是实例化问题困扰我,这个说明我的弱点在哪里,我感觉我函数部分没有学习明白参数有点能不清楚,该写那些,往各位指教

解决方案 »

  1.   

    string sql = string.Format("select cid,cname,pid,feiyongleixing,yaopinleixing,numberid from 临时挂号表 where cname=\"{0}\" and numberid={1}", name, id); 发生异常了,但异常被你吃掉了,bingren 就返回开始的null
      

  2.   

    肯定bingren.Feiyongleixing没有被赋值,楼主要学会调试代码
      

  3.   

    bingren = HuaJiaDao.QiTaXinXi(name, id); 
    返回的为null
    if(bingren!=null)
    {
    }
      

  4.   

    bingren = HuaJiaDao.QiTaXinXi(name, id); 
     this.textBox3.Text = bingren.Feiyongleixing两行设置断点,F5运行查看
      

  5.   

    一般出现“未将对象引用设置到对象的实例”的问题,是因为对象的实例为空,为什么为空呢?是因为调用函数 bingren = HuaJiaDao.QiTaXinXi(name, id); 出现异常了,你函数在QiTaXinXi(string name, string id) 的CATCH里加入MESSAGEBOX("是不是出现异常了?")。再运行就可以得到证实了。为什么出现异常呢?是因为你的查询语句不对,string sql = string.Format("select cid,cname,pid,feiyongleixing,yaopinleixing,numberid from 临时挂号表 where cname={0} and numberid={1}", name, id); cname={0} and numberid={1}应该加上单引号,应为cname='{0}' and numberid='{1}'
    你试试?
    【原创家庭记账簿1.2.5,简单实用,通俗易懂,欢迎工薪阶层、家庭主妇下载使用 http://download.csdn.net/source/1900400】
      

  6.   

    QiTaXinXi(string name, string id)在这个方法里面设置一个断点看看
    或者
                try 
                { 
                    SqlConnection conn = Connect.getConnection(); 
                    conn.Open(); 
                    // 下面代码省略
                }
                catch 
                { 
                    bingren = new BingRen(); // 构造一个空对象
                }
    然后取值的时候 判断里面的属性值
      

  7.   

    你应该再在this.textBox3.Text = bingren.Feiyongleixing;//在这里总是显示未将对象引用设置到对象的实例 
                    this.textBox9.Text = bingren.Yaopinleixing; 
                } 
    前加一个if(bingren!=null)