none
出现“Object reference not set to an instance of an object.”这个问题应该怎么改 RRS feed

  • 问题

  • 我写了一句:

    this.dataGridView1.DataSource = m.ViewByClass(this.txtFindName.Text).Tables["total"].DefaultView;

    为什么会出现:

    Object reference not set to an instance of an object.     的错误呢??

     

    其中ViewByClass的定义是:

    public DataSet ViewByClass(string ss)

            {

                return new DataAccess().DataGetByType(ss);

            }

     

    其中DataGetByType的定义是:

    public DataSet DataGetByType(string ty)//分类查看信息

            {

                DataSet ds = new DataSet();

                string sqlcmd = "select * form total where type like '%" + ty + "%'";

                if (adapter == null)

                {

                    adapter = new SqlDataAdapter(sqlcmd, Connect);

                }

                try

                {

                    adapter.Fill(ds, "total");

                }

                catch (SqlException e)

                {

                    Console.WriteLine(e.Message);

                }

                return ds;

            }

    新生求助!!!!!!!!!!!!!!!!!!!!!!!!!!

    2011年9月2日 12:59

答案

  • 给你个建议,减少复合语句,一行只做一件事。使用可能为空的变量前先做有效性检查。
    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年9月3日 17:57
    版主

全部回复

  • 如果你手上根本没有杯子,就要往"杯子"里倒水,就会报这个错,大意是:你手上没有一个看得见摸得着的杯子,叫我肿么办?

     

    感觉挑选的学习材料不太适合你,考虑一下换个,比如这种课程:

    http://www.microsoft.com/learning/en/us/Course.aspx?ID=10266A&Locale=en-us#tab1

    2011年9月2日 13:42
  •  

    我写了一句:

    this.dataGridView1.DataSource = m.ViewByClass(this.txtFindName.Text).Tables["total"].DefaultView;

     

    为什么会出现:

    Object reference not set to an instance of an object.     的错误呢??

     

    其中ViewByClass的定义是:

     

    public DataSet ViewByClass(string ss)

            {

                return new DataAccess().DataGetByType(ss);

            }

     

    其中DataGetByType的定义是:

     

    public DataSet DataGetByType(string ty)//分类查看信息

            {

                DataSet ds = new DataSet();

                string sqlcmd = "select * form total where type like '%" + ty + "%'";

                if (adapter == null)

                {

                    adapter = new SqlDataAdapter(sqlcmd, Connect);

                }

                try

                {

                    adapter.Fill(ds, "total");

                }

                catch (SqlException e)

                {

                    Console.WriteLine(e.Message);

                }

                return ds;

            }

    新生求助!!!!!!!!!!!!!!!!!!!!!!!!!!


    按F5运行你的程序,然后截图传上来给我们看看究竟程序停在哪句话上面?
    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年9月3日 4:57
    版主
  • 给你个建议,减少复合语句,一行只做一件事。使用可能为空的变量前先做有效性检查。
    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年9月3日 17:57
    版主
  • 我已经找到答案
    2011年9月5日 7:05