DataTable Fdt = new DataTable();        private void btnS_Click(object sender, EventArgs e)
        {
            Fdt.Columns.Add("Text", Type.GetType("System.String"));
            Fdt.Columns.Add("Value", Type.GetType("System.String"));
            Fdt.Rows.Add("Text3", "4");
            Fdt.Rows.Add("Text2", "3");
            Fdt.Rows.Add("Text1", "1");
            Fdt.Rows.Add("Text0", "0");            dataGridView1.DataSource = Fdt;
        }
如上面的代码,点击了 按钮 后 ,dataGridView1 里面啥效果都没有...为啥?? 如何修改??

解决方案 »

  1.   

    private void btnS_Click(object sender, EventArgs e)
            {
                Fdt.Columns.Add("Text", Type.GetType("System.String"));
                Fdt.Columns.Add("Value", Type.GetType("System.String"));
                Fdt.Rows.Add("Text3", "4");
                Fdt.Rows.Add("Text2", "3");
                Fdt.Rows.Add("Text1", "1");
                Fdt.Rows.Add("Text0", "0");
     
                dataGridView1.DataSource = Fdt;
                dataGridView1.DataBind();
            }
      

  2.   

    楼上正解, 缺dataGridView1.DataBind();
            
      

  3.   


          dataGridView1.DataBind();
    报错了:错误 2 “System.Windows.Forms.DataGridView”不包含“DataBind”的定义,并且找不到可接受类型为“System.Windows.Forms.DataGridView”的第一个参数的扩展方法“DataBind”(是否缺少 using 指令或程序集引用?)
      

  4.   

    使用DataSource的话你就要设置DataPropertyName为你想绑定的字段名
    你可以这样写
    for(int i;i<fdt.Rows.Count;i++)
    {
    this.dataGridView["columnname",i].value=fdt.Rows[i]["columnname"].ToString();
    ......
    .....
    .....
    }
      

  5.   

    我这样写:        {
                Fdt.Columns.Add("Text", Type.GetType("System.String"));
                Fdt.Columns.Add("Value", Type.GetType("System.String"));
                Fdt.Rows.Add("Text3", "4");
                Fdt.Rows.Add("Text2", "3");
                Fdt.Rows.Add("Text1", "1");
                Fdt.Rows.Add("Text0", "0");            dataGridView1.DataSource = Fdt;
                //dataGridView1.DataBind();            MessageBox.Show(Fdt.Rows[0][0].ToString());
                dataGridView1[0, 0].Value = Fdt.Rows[0][0].ToString(); 
            }
    报错:
    “索引超出范围。必须为非负值并小于集合大小。
    参数名: index。”
      

  6.   


    private void btnS_Click(object sender, EventArgs e)
            {
                Fdt.Columns.Add("Text", Type.GetType("System.String"));
                Fdt.Columns.Add("Value", Type.GetType("System.String"));
                Fdt.Rows.Add("Text3", "4");
                Fdt.Rows.Add("Text2", "3");
                Fdt.Rows.Add("Text1", "1");
                Fdt.Rows.Add("Text0", "0");
     
                dataGridView1.DataSource = Fdt;
                dataGridView1.DataBind();
            }这样是可以显示的哦,没问题
      

  7.   

    你引用的是几楼的回复啊???我这是 窗体 代码。貌似么有 “DataBind()” !!...
      

  8.   

    row1=Fdt.NewRow();
    row1[0]="Text1";row1[1]="1";
    Fdt.Rows.Add(row1);
      

  9.   

    亲你也太耿直了吧,datagridview有行吗?
      

  10.   

    你要将设 AutoGenerateColumns="true" 属性设为true
      

  11.   

    你需要用DataSet对象绑定到DatagridView
        最后dataGradiew.DataSource=dataset;
      

  12.   

    首先,俺是菜鸟,还不熟悉C#的一些语法和ide的用法,感谢各位的帮助。俺也是在google了之后才知道 在 web 中有 dataGradiew.DataBind() 而 Win窗体里面没有 ,so在 7楼 补讲了 我这是 Win窗体代码 ,后面还是在纠结 DataBind 的事情 ,很是无语...最后,感谢 12楼 DENQH 给出正解 。