dataGridView1.DataSource = ds.Tables[0];
dataGridView1.DataSource = ds;请问以上两句的区别在哪里呢我使用第二句就检索不出数据
改成第一句就可以了?

解决方案 »

  1.   

    貌似 应该这样写呢dataGridView1.DataSource = ds; 
    dataGridView1.Datamember=ds.table[0];
      

  2.   

    这个没什么区别
    关键是你接受DataSet的时候是怎么返回的
      

  3.   

    因该是
    dataGridView1.DataSource = Datatable;
    不是dataset
     
      

  4.   

    ds 是一个数据集,里面可以盛放好多个table, table[0],table[1].....如果用下面的:
    dataGridView1.DataSource = ds; 
    this.dataGridView1.DataMember=“表名”
      

  5.   

    SqlCommand cmd = new SqlCommand("Select * from t09.cfnr where dnbxlh = @id", con);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                cmd.Parameters.AddWithValue("@id",Convert.ToInt32(textBox1.Text));
                //cmd.Parameters.AddWithValue("@id", textBox1.Text);
                DataSet ds = new DataSet();
                con.Open();
                adp.Fill(ds, "cfnr");
                //dataGridView1.DataSource = ds;
                //dataGridView1.DataBind();
                dataGridView1.DataSource = ds.Tables[0]; // 检查DataSet 是否有数据 
                //MessageBox.Show(ds.Tables[0].Rows.Count.ToString());
                con.Close();
    屏蔽这一句,就无法检索数据dataGridView1.DataSource = ds.Tables[0]; 
    这一局可有可无dataGridView1.DataSource = ds; 
      

  6.   

    如果你在接受数据时返回的是  ds;那么就需要加上ds.Tables[0]
    如果你在接受数据返回时ds.Tables[0]就不需要加了 其实就是看你返回是怎么返回的
      

  7.   

    dataGridView1.DataSource = ds.Tables[0];
    dataGridView1.DataSource = ds; 如果你确定了你绑在dataGridView1上的表是dataset中的第一个表就最好写第一个,
    dataset里可能不止一个表的哦如果就单单一个表,上面两句话哪个都是正确的
      

  8.   

    ds 里面有N个Table也就是大集合里面有小集合,如果你当前DS里就有一张表,dataGridView1.DataSource = ds; 
    这样就可以,如里有多张,就得指定对应的表,下标从0开始
      

  9.   

    GridView 类的数据源必须为DataTable,List这一类型的数据,DataSet是一个数据集,可以包含很多个DataTable.
      

  10.   


      public DataSet Query(string sql)
            {
                using (SqlConnection conn = new SqlConnection(""))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter(sql, conn))
                    {
                        using (DataSet ds = new DataSet())
                        {
                            sda.Fill(ds);
                            return ds;//在绑定时就需要ds.Tables[0]
                            return ds.Tables[0];//在绑定时就不需要ds.Tables[0]  直接ds就ok了   看你选哪个
                        }
                    }
                }
            }
      

  11.   

      public DataSet Query(string sql)
            {
                using (SqlConnection conn = new SqlConnection(""))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter(sql, conn))
                    {
                        using (DataSet ds = new DataSet())
                        {
                            sda.Fill(ds);
                            return ds;//在绑定时就需要ds.Tables[0]
                            return ds.Tables[0];//在绑定时就不需要ds.Tables[0]  直接ds就ok了   看你选哪个

                        }
                    }
                }
            }
      

  12.   

    ds是多个表的集合,ds.Tables[0]是指第一张表!
      

  13.   


    DataSet可以存放多个表,ds.Tables[0]指定到了具体的某张表..如果直接指定数据源为DataSet,并不能准备指定你需要绑定的某张表..
    甚至会出现数据不显示..
      

  14.   

    dataGridView1.DataSource = ds.Tables[0]; 
    datagridview的数据源不能设置为DataSet,其实任何空间的数据源都不能设置为DataSet的,必须要制定到具体的DataTable/DataView