C#WinForm
 
        //其他代码省略..........        public void test1() {
            this.dgv.DataSource = test2();
            MessageBox.Show(this.dgv.Rows.Count.ToString());
        }    
        //按钮点击事件    
        void btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show(this.dgv.Rows.Count.ToString());
        }
        public DataTable test2()
        {
            DataTable dt = test3();
            for (int j = 0; j < 20; j++)
            {
                DataRow dr = dt.NewRow();
                dr["日期"] = null;
                dr["单据编号"] = null;
                dr["商品名称"] = null;
                dr["数量"] = System.DBNull.Value;
                dr["过账出入库数量"] = System.DBNull.Value;
                dr["草稿出入库数量"] = System.DBNull.Value;
                dr["订单出入库数量"] = System.DBNull.Value;
                dt.Rows.Add(dr);
            }
            return dt;
        }
        public DataTable test2()
        {
            DataTable dt = new DataTable();
            DataColumn dc1 = new DataColumn("日期", System.Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("单据编号", System.Type.GetType("System.String"));
            DataColumn dc3 = new DataColumn("数量", System.Type.GetType("System.String"));
            DataColumn dc4 = new DataColumn("单位全名", System.Type.GetType("System.String"));
            DataColumn dc5 = new DataColumn("商品名称", System.Type.GetType("System.String"));
            DataColumn dc6 = new DataColumn("过账出入库数量", System.Type.GetType("System.Single"));
            DataColumn dc7 = new DataColumn("草稿出入库数量", System.Type.GetType("System.Single"));
            DataColumn dc8 = new DataColumn("订单出入库数量", System.Type.GetType("System.Single"));
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            dt.Columns.Add(dc5);
            dt.Columns.Add(dc6);
            dt.Columns.Add(dc7);
            dt.Columns.Add(dc8);
            return dt;
        }
test1()        打印出0
btn_Click()    打印出21
为啥同一个dgv打印出两个不同的数据呢??

解决方案 »

  1.   

    public DataTable test2改test3()
    {}
    不好意思打错了
      

  2.   

    public DataTable test2改test3()
    {
    }
    不好意思打错了
      

  3.   

    public void test1() {
                this.dgv.DataSource = test2();//
    this.dgv.DataBind();  //加上试试
                MessageBox.Show(this.dgv.Rows.Count.ToString());
            }    因为你没有绑定所以是0
      

  4.   

    兄弟啊
    这是C#WinForm DataGridView 没这个方法
      

  5.   

    刚才看了看
    this.dgv.DataSource 这个属性是显示数据源
    this.dgv.DataBindings  这个属性是绑定数据源
    它应该会自动绑定啊
    为什么我点击按钮的时候
    打印有数据呢??
      

  6.   

    test3在哪?
    如果下面那个是test3的话,
    将你创建的test2中的;
    DataTable dt = test3();
    test3中的
    DataTable dt = new DataTable();
    在方法外外面定义一个DataTable dt;
    而将内部的DataTable都去掉,只写个dt