winform程序MainForm 页面显示所有的图书信息列表  方法如下
  public void getBookList()
        {
            ConnectDBStrClass connstr = new ConnectDBStrClass();
            String connDBStr = connstr.getConnectDBStr();
            String sql = "select * from book";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, connDBStr);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            info_label2 .Text ="共 " +dt.Rows.Count + " 条信息。";
            dataGridView1.DataSource = dt;
        }在另一个addBook.cs里增加信息
增加成功后
.......................
  int i = comm.ExecuteNonQuery ();
                conn.Close();
                if (i == 1)
                {
                    MessageBox.Show("增加成功!");
                    MainForm f = new MainForm();
                    f.getBookList();//条用mainForm里的方法,让它重新获取一下数据,可是没有显示出新添加的数据
                    Close();    //请问这是为什么?我该怎么做?
                }
                else
                {
                    MessageBox.Show("增加失败!");
                    Close();
                }

解决方案 »

  1.   


    你掉了一个东东;dataGridView1.DataBind();Close();    可能是你定义的一个方法,估计是关闭数据库连接~`
      

  2.   

    dataGridView1.DataBind(); ???
    哥哥说清楚啊
      

  3.   

    说清楚啊,dataGridView1.DataBind(); ??我写在那里?
      

  4.   

    在【dataGridView1.DataSource = dt; 】后面加上
      

  5.   

    dataGridView1.DataBind(); ??我怎么没有找到这个方法?
      

  6.   

      adapter.Fill(dt); 
                info_label2 .Text ="共 " +dt.Rows.Count + " 条信息。"; 
                dataGridView1.DataSource = dt; 
     
    这个后面加 这句dataGridView1.DataBind();  上面的都说的太专业了!
      

  7.   

    int i = comm.ExecuteNonQuery (); 
                    conn.Close(); 
                    if (i == 1) 
                    { 
                        MessageBox.Show("增加成功!"); 
                        MainForm f = new MainForm(); 
                        f.getBookList();//条用mainForm里的方法,让它重新获取一下数据,可是没有显示出新添加的数据 
                        Close();    //请问这是为什么?我该怎么做? 
                    } 没有显示添加的新的数据是因为你数据库操作问题 添加这个就成 
    String sql = "select * from book"; 
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connDBStr); 
    用SqlCommand执行完添加后在执行这个!具体的你自己写 
    这个只是大体的解决方法 .就是说当你执行完添加后,还要执行查询,才能再次显示你新的记录
    你不在执行查询还是原来的查询结果的,肯定就显示不出来新的记录了!
      

  8.   

    大家都说
    dataGridView1.DataBind();  
    可是我怎么只是找到  dataGridView1.DataBindings ?呢???
    并且  dataGridView1.DataBindings =dt 我这样写
    却报错。
      

  9.   

    是不是和开发环景有关系?我的是VS2005再次声明我这个是WINFORM程序
      

  10.   

      MessageBox.Show("增加成功!"); 
                        MainForm f = new MainForm(); 
                        f.getBookList();//条用mainForm里的方法,让它重新获取一下数据,可是没有显示出新添加的数据 
                        Close();    //请问这是为什么?我该怎么做? 我现在怀疑我   MainForm f = new MainForm(); 
    这句话
    是不是我NEW 了一个新的MainForm之后,我更新的是新的MainfORM ,原来的没有更新呢?
      

  11.   

    ....c/s不需要DataBind()方法,指定数据源即可~--!
      

  12.   

    既然写成了一个方法就不要写的这么死!
    public DataTable getBookList(string sql) 
            { 
                ConnectDBStrClass connstr = new ConnectDBStrClass(); 
                String connDBStr = connstr.getConnectDBStr(); 
                SqlDataAdapter adapter = new SqlDataAdapter(sql, connDBStr); 
                DataTable dt = new DataTable(); 
                adapter.Fill(dt); 
                return dt;
                info_label2 .Text ="共 " +dt.Rows.Count + " 条信息。";              
            }