调用如下方法时:
 DataSet ds = new DataSet();
public void GetP()
        {
            if (this.Rcode != "")
            {                ds.Tables["Zd_Xz"].Rows.Clear();//就在这!(未将对象引用设置到对象的实例)
                try
                {
                    string select = "select * from Zd_Xz where Xz_Code=" + this.Rcode + "";                    SqlDataAdapter adp = new SqlDataAdapter(select, source);
                    SqlCommandBuilder cb = new SqlCommandBuilder(adp);                    adp.Fill(ds, "Zd_Xz");
                    adp.Update(ds, "Zd_Xz");
                    this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }            }
是不是"Zd_Xz"表没有啊???

解决方案 »

  1.   

    肯定是没有这个table下面就是fill,所以这句根本不需要,可以去掉
      

  2.   

    你是说将adp.Fill(ds, "Zd_Xz");
    去了???
    还有,我在这里要用到table
      

  3.   

    DataSet ds = new DataSet();
    public void GetP()
            {
                if (this.Rcode != "")
                {                ds.Tables["Zd_Xz"].Rowsds目前是任内容啊
      

  4.   

    我说删掉这一句
        ds.Tables["Zd_Xz"].Rows.Clear();//就在这!(未将对象引用设置到对象的实例)
      

  5.   

    DataSet ds = new DataSet();
    public void GetP()
            {
                if (this.Rcode != "")
                {                ds.Tables["Zd_Xz"].Rows.Clear();//就在这!(未将对象引用设置到对象的实例)
                    try
                    {
                        string select = "select * from Zd_Xz where Xz_Code=" + this.Rcode + "";                    SqlDataAdapter adp = new SqlDataAdapter(select, source);
                        SqlCommandBuilder cb = new SqlCommandBuilder(adp);                    adp.Fill(ds, "Zd_Xz");
                        adp.Update(ds, "Zd_Xz");
                        this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }            }
      

  6.   

    //Sorry !
    //charles_y(难得糊涂) ( ) 信誉:100 
    //意思是:DataSet ds = new DataSet();
    public void GetP()
            {
                if (this.Rcode != "")
                {                try
                    {
                        string select = "select * from Zd_Xz where Xz_Code=" + this.Rcode + "";                    SqlDataAdapter adp = new SqlDataAdapter(select, source);
                        SqlCommandBuilder cb = new SqlCommandBuilder(adp);                    adp.Fill(ds, "Zd_Xz");
                        adp.Update(ds, "Zd_Xz");
                        this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }            }
      

  7.   

    ds.Tables["Zd_Xz"].Rows.Clear();//就在这!(未将对象引用设置到对象的实例)可以的!
    但,不能显示出我要的记录!
    我的思路是,用Form2传过来的Rcode在ds.Tables中显示查询的记录!
      

  8.   

    chendazhi(不务正业) (
    你的思路是错的!
    执行后,问题没变!
      

  9.   

    错误是什么,显示不出来?还是显示出来了但是结果不正确?
    如果是显示不出来,加断点调式一下看看是不是fill出错了?DataSet ds = new DataSet();
    public void GetP()
            {
                if (this.Rcode != "")
                {                try
                    {
                        string select = "select * from Zd_Xz where Xz_Code=" + this.Rcode + "";                    SqlDataAdapter adp = new SqlDataAdapter(select, source);
                       // SqlCommandBuilder cb = new SqlCommandBuilder(adp);                    adp.Fill(ds, "Zd_Xz");
                       // adp.Update(ds, "Zd_Xz");
                        this.dataGridView1.DataSource = ds.Tables["Zd_Xz"].DefaultView; //改一下
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }            }
      

  10.   

    思路是,用Form2传过来的Rcode在ds.Tables中显示查询的记录!
    通过后,没有显示要查询的记录!
      

  11.   

    那可能是你其他地方出错了,比如sql语句,数据库连接什么的这个只能自己跟踪调试看看了,别人搞不清楚
      

  12.   

    你看看SQL语句是你想要的吗?
    Fill的时候出错了吗?有没有跳到catch 中去还有你这个是ASP.NET 还是winform
    加个
    dataGridView1.DataBind(); 看看呢
      

  13.   

    是WinForm的!
    现在问题是:能过,但,就是不能显示查询的结果!
      

  14.   

    改一下试试
    string select = "select * from Zd_Xz where Xz_Code= '" + this.Rcode + "'";
      

  15.   

    思路是,用Form2传过来的Rcode在ds.Tables中显示查询的记录!
    通过后,没有显示要查询的记录!
    ------------------------------
    为什么不这样:
    public void GetP(string Rcode)
    {
    ......
    }
      

  16.   

    DataSet ds = new DataSet();public DataSet GetP()
    {
    DataSet ds = new DataSet();if (this.Rcode != "")
    {ds.Tables["Zd_Xz"].Rows.Clear();//就在这!(未将对象引用设置到对象的实例)
    try
    {
    string select = "select * from Zd_Xz where Xz_Code=" + this.Rcode + "";SqlDataAdapter adp = new SqlDataAdapter(select, source);
    SqlCommandBuilder cb = new SqlCommandBuilder(adp);adp.Fill(ds, "Zd_Xz");
    adp.Update(ds, "Zd_Xz");
    this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    return ds;
    }
    }
      

  17.   

    少一句:
    ds = GetP();
      

  18.   

    试试这样
    ds.Tables[0].Rows.Clear();
      

  19.   

    在调用函数之前没有填充,当然未将对象引用设置到对象的实例了,呵呵,在函数前或ds.Tables["Zd_Xz"].Rows.Clear()前先填充一下就OK了.
      

  20.   

    if(ds.Tables["Zd_Xz"] != null)
        ds.Tables["Zd_Xz"].Rows.Clear();
      

  21.   

    如果你是在程序中定义的DATASET
    没填充前那里来的表名?
    所以clear()这个完全没必要
    你可以在填充的时候指定一个表明
    也可以填充后用table[0]的索引格式引用
      

  22.   

    ds.Tables["Zd_Xz"].Rows.Clear()
    我也发生过类似的错误基本是表没有创立;
    搂主好像是清空DataSet
    直接dsResult.Clear();好了