如何抓取GridView1 里的各列字段名(注意不是值是字段名),还有如何抓取表名以级主键名,麻烦各位大哥告知谢谢!

解决方案 »

  1.   

    GridView1.Columns[0].HeaderText//列名表名,和主键名,需要到数据源中提取,在gv中是找不到的
      

  2.   


    --得到表名
    select   *   from   sysobjects   where   xtype='U'   --得到列名
    select  列名=name   from   syscolumns   where   id=object_id(N'表名')
    GridView取得主键:
    GridView1.DataKeyNames = new string[] { "xxx" };//设置主键
    //取得主键
    GridView1.DataKeys[e.RowIndex]["xxx"].ToString()
      

  3.   


    GridView1.Columns[0].HeaderText //你的第一列的头标题
    GridView1.Columns[1].HeaderText//你的第二列的头标题
    GridView1.Columns[2].HeaderText//....
    GridView1.Columns[3].HeaderText//....
    .....
      

  4.   

    GridView1.Columns[0].HeaderText
    只是gridview1上的列头吧,可以跟字段名不一样?
      

  5.   

    我用了GridView1.Columns[0].HeaderText 不行呀,因为我是动态执行sql语句的,而不是帮定的,所以他提示超出了索引范围!我该如何解决呢?
      

  6.   

    可以这样子循环这个 Columns
    再去HeaderText 
      

  7.   

    to zengfanxing
    我就是这样写的呀
             for (int i = 1; i <=GridView1.HeaderRow.Cells.Count; i++)
             {
                 Label1.Text = Label1.Text + GridView1.Columns[i].HeaderText+", ";
             }因为我是动态生成的而不是绑定的,所以他说超出了索引范围!那能不能从DataSet提所有取字段名呢?该如何提取,请告知谢谢!
      

  8.   

    这种需求应该在数据源上解决,而不是生成的table上面.
      

  9.   

    不能从DataSet提所有取字段名吗?
      

  10.   

    DataTaable dt=new DataTable();
    DataColumn[] columns;
    columns = dt.PrimaryKey;
    for(int i = 0; i < dt.Columns.Count; i++)
    {
    Console.WriteLine(dt.Columns[i].ColumnName + dt.Columns[i].DataType);
    }
    string Name = GridView1.HeaderRow.Cells[1].Text; //1为第1列名字
    Response.Write(Name);
      

  11.   

    这个问题.....用面向对象的思想,查“数据实体类”http://topic.csdn.net/u/20090423/09/adfb705f-9cc8-45b8-b883-acef97770a74.html