//此段程序只能显示数据库中最后一条记录              
  getSqlConnection getConnection = new getSqlConnection();
                conn = getConnection.GetCon();
                cmd = new SqlCommand(strSecar, conn);
                int ii = 0;
                qlddr = cmd.ExecuteReader();
                System.Windows.Forms.DataGridView dv = (DataGridView)DataObject;
                while (qlddr.Read())
                {
                    int i = 0;
                    dv[0, i].Value = qlddr[0].ToString();
                    dv[1, i].Value = qlddr[4].ToString();
                    dv[2, i].Value = qlddr[2].ToString();
                    dv[3, i].Value = qlddr[3].ToString();
                    dv[4, i].Value = qlddr[5].ToString();
                    dv[5, i].Value = qlddr[7].ToString();
                    dv[6, i].Value = qlddr[8].ToString();
                    i++;                }
                qlddr.Close();这么改之后,就可以将数据库中全部记录绑定到DataGridView,但是我看不懂,哪位帮解释一下,
getSqlConnection getConnection = new getSqlConnection();
                conn = getConnection.GetCon();
                cmd = new SqlCommand(strSecar, conn);
                int ii = 0;
                qlddr = cmd.ExecuteReader();                while (qlddr.Read())
                {
                    ii++;
                }
                qlddr.Close();
                System.Windows.Forms.DataGridView dv = (DataGridView)DataObject;
                if (ii != 0)
                {
                    int i = 0;
                    dv.RowCount = ii;
                    qlddr = cmd.ExecuteReader();
                    while (qlddr.Read())
                    {
                        dv[0, i].Value = qlddr[0].ToString();
                        dv[1, i].Value = qlddr[4].ToString();
                        dv[2, i].Value = qlddr[2].ToString();
                        dv[3, i].Value = qlddr[3].ToString();
                        dv[4, i].Value = qlddr[5].ToString();
                        dv[5, i].Value = qlddr[7].ToString();
                        dv[6, i].Value = qlddr[8].ToString();
                        i++;
                                            }
                    qlddr.Close();
                }

解决方案 »

  1.   

    直接Fill一个DataTable,然后将这个DataTable设为DataGridView的DataSource。
    这才叫绑定,整个过程不知道要简单多少。
      

  2.   

    即使是要使用数据库中的数据填充DataGridView而非进行绑定,Fill一个DataTable然后使用这个DataTable来赋值也要省事。
      

  3.   

    楼上,我用你说的方法绑定,确实简单多了
    但是显示的datagridview的列头都是中文的,
    记得以前用vs03搞过datagrid的,是用编程方式实现的,隔太久忘了,
    哪位能说说怎么实现,注意,我现在是c/s模式,要的是编程方法实现
    而不是直接在其设计文件中,通过datagridview的属性Columns.collection添加
     getSqlConnection getConnection = new getSqlConnection();
                    conn = getConnection.GetCon();                SqlDataAdapter ada = new SqlDataAdapter(strSecar, conn);
                    DataTable dt = new DataTable();
                    dt.Clear();
                    ada.Fill(dt);
                    System.Windows.Forms.DataGridView dv = (DataGridView)DataObject;
                    dv.DataSource = dt;
      

  4.   

    但是显示的datagridview的列头都是英文的,怎么实现中文的,
      

  5.   

    看看这里,我最后的回复:
    http://topic.csdn.net/u/20090814/09/4a32ceb2-6d67-4311-a652-c6af1cce57ab.html修改列标题使用HeaderText属性。
      

  6.   

    我还是把代码贴过来算了:                    dgv = new DataGrid();
                        DataGridTableStyle dgts = new DataGridTableStyle();
                        dgts.AllowSorting = true;
                        dgts.MappingName=Data.TableName;
                        foreach (DataColumn col in ds.Tables[0].Columns)
                        {
                            DataGridTextBoxColumn dgtbc = new DataGridTextBoxColumn();
                            dgtbc.MappingName=col.ColumnName;
                            dgtbc.NullText = "NULL";
                            dgtbc.HeaderText="...";//这里你自己看着办
                            dgts.GridColumnStyles.Add(dgtbc);
                        }
                        dgv.DataSource = ds.Tables[0];                    
                        dgv.TableStyles.Add(dgts);
      

  7.   

    不过,我贴出来的那个是针对使用DataGrid的(VS03只能使用这个),DataGridView还要简单些。
      

  8.   

    1.   qlddr = cmd.ExecuteReader(); 
    qlddr is dataReader
    2.   dv[0, i].Value = qlddr[0].ToString(); 
                            dv[1, i].Value = qlddr[4].ToString(); 
    不明白
      

  9.   

    //此段程序只能显示数据库中最后一条记录              
      getSqlConnection getConnection = new getSqlConnection(); 
                    conn = getConnection.GetCon(); 
                    cmd = new SqlCommand(strSecar, conn); 
                    int ii = 0; 
                    qlddr = cmd.ExecuteReader(); 
                    System.Windows.Forms.DataGridView dv = (DataGridView)DataObject; 
                    int i=0;
                    while (qlddr.Read()) 
                    { 
                        //int i = 0; 
                        dv[0, i].Value = qlddr[0].ToString(); 
                        dv[1, i].Value = qlddr[4].ToString(); 
                        dv[2, i].Value = qlddr[2].ToString(); 
                        dv[3, i].Value = qlddr[3].ToString(); 
                        dv[4, i].Value = qlddr[5].ToString(); 
                        dv[5, i].Value = qlddr[7].ToString(); 
                        dv[6, i].Value = qlddr[8].ToString(); 
                        i++;                 } 
                    qlddr.Close(); 
    你的int i=0;写在while里面,那么你循环了半天永远是i=0; i++就无效了。
    当然,绑定的话参考楼上的更好。
      

  10.   

    我也来赚点分,这个嘛,直接拖控件填充数据用就可以了,直接在设计中实现,不用写代码,英文改成中文就在HeaderText里面改。