代码如下:              DataTable dt = new DataTable("newTable");
                dt.Columns.Add("编号", Type.GetType("System.String"));
                dt.Columns.Add("值1", Type.GetType("System.String"));
                dt.Columns.Add("值2", Type.GetType("System.String"));
                dt.Columns.Add("值3", Type.GetType("System.String"));
                dt.Columns.Add("值4", Type.GetType("System.String"));         string sql = "select * from test order by Id";
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader sdr = cmd.ExecuteReader();
                 DataRow dr; 
                while (sdr.Read())
                {
                    dr = dt.NewRow();
                    dr[0] = sdr["Id"].ToString();
                    dr[1] = sdr["value1"].ToString();
                    dr[2] = sdr["value2"].ToString();
                    dr[3] = sdr["value3"].ToString();
                    dr[4] = sdr["value4"].ToString();
                    dt.Rows.Add(dr);
                    
                }
                dataGridView1.DataSource = dt;
                dataGridView1.AutoGenerateColumns = true;
                dataGridView1.Update();  只生成网格,但是没有数据显示 为什么?

解决方案 »

  1.   

    dt.Rows.Add(dr);
    后面现加这一句
    AcceptChanges();
      

  2.   

    dt.Rows.Add(dr);
    后面现加这一句
    dt.AcceptChanges();
      

  3.   

    DataSet  ds = cmd.ExecuteDataset();
    DataTable dt = ds.Tables[0].DefaultView.Table;
    dataGridView1.DataSource = dt;这样就可以了,没有用Datareader那么麻烦
      

  4.   

    conn连接都没打开,哪里来的数据
      

  5.   

    不直接使用 SQL语句查询出来的记录集 是因为显示的网格和记录集不是一一对应的,
    比如显示在网格中的一列等于记录集两列的之和
      

  6.   

    设定数据源后 要绑定 
    dataGridView1.DataSource = dtdataGridView1.DataBind();
      

  7.   

    这样你看下可不可以用DataTable dt = new DataTable("newTable");
      dt.Columns.Add("编号", Type.GetType("System.String"));
      dt.Columns.Add("值1", Type.GetType("System.String"));
      dt.Columns.Add("值2", Type.GetType("System.String"));
      dt.Columns.Add("值3", Type.GetType("System.String"));
      dt.Columns.Add("值4", Type.GetType("System.String"));  string sql = "select * from test order by Id";
      string connstr = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
      using(SqlConnection conn = new SqlConnection(connstr))
      {
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        SqlDataReader sdr = cmd.ExecuteReader();
        DataRow dr;  
        while (sdr.Read())
        {
        dr = dt.NewRow();
        dr[0] = sdr["Id"].ToString();
        dr[1] = sdr["value1"].ToString();
        dr[2] = sdr["value2"].ToString();
        dr[3] = sdr["value3"].ToString();
        dr[4] = sdr["value4"].ToString();
        dt.Rows.Add(dr);
        }
        conn.Close();
      }
      dataGridView1.DataSource = dt;
      dataGridView1.Bind();
      

  8.   

    对了~写错了一点,最后的dataGridView1.Bind();
    是datagridview1.DataBind();