datagridview已经设置过表头
怎么把查询到的数据从datatable用foreach循环加载到datagridview
通过取得datatable的列集合来为datagridview添加列,通过取得datatable的行集合来为datagridview添加行,代码如下:
//dataGridView1.DataSource = table;//通常只写这一句就可以了,但根据你的要求,用下面的循环也可以实现相同功能。中间那switch有没有其他简化点的写法,因为列明有点子多~~~
追答如果你的列名和表的列名是完全一样的,就不需要switch,直接把cellname改成col.ColumnName。但是如果是一样的,就像他们说的用绑定还快点。
追问一开始就在datagridview里设置过表头了,用绑定的话不就原来设的表头下面没数据,会跑出数据库字段名的表头来了
追答那你最开始干嘛要设置呢?
dataGridView1.DataSource = dt;
这样就是自动生成列的。
是必须要有表头,如果不点查询的话表里是什么数据也没有的
追答哦,那就用我上面说的,直接把cellname改成col.ColumnName。另外,还是可以绑定的,如果没有记录,你也可以先构造一个空表啊,或者dt.Clone(),很多方法可以实现的。
本回答被提问者采纳一开始就已经设置过表头了,查询出数据绑到datagridview以后数据和字段就都显示到预先设置的表头后面了
追答你要么清除之前的表头设置,绑定后在dataGridView属性里设置,如果你想灵活一些,建议你使用Repeater控件,还是那样绑定,但你可以自定义重复项
......
..
...
.....
这是winform程序~~~
追答把你定义的列清除了,dataGridView1.DataSource=DataTable,不用写dataGridView1.DataBind();
然后再控件属性上定义列设置,可以改列头文字,宽度,是否冻结!不开VS快一年了,你自己找找看属性,肯定有!
不查询的话gridview里什么数据都木有~~所以不能没有表头