C# 怎么把查询到的数据从datatable用foreach循环加载到datagridview
datagridview已经设置过表头怎么把查询到的数据从datatable用foreach循环加载到datagridview...
datagridview已经设置过表头
怎么把查询到的数据从datatable用foreach循环加载到datagridview 展开
怎么把查询到的数据从datatable用foreach循环加载到datagridview 展开
展开全部
通过取得datatable的列集合来为datagridview添加列,通过取得datatable的行集合来为datagridview添加行,代码如下:
//dataGridView1.DataSource = table;//通常只写这一句就可以了,但根据你的要求,用下面的循环也可以实现相同功能。
dataGridView1.Columns.Clear();//清空列
foreach (DataColumn column in table.Columns)
{
//为datagridview添加列,第一个参数是列名,第二个参数是列标题
dataGridView1.Columns.Add(column.ColumnName, column.ColumnName);
}
dataGridView1.Rows.Clear();//清空行
foreach (DataRow line in table.Rows)
{
//因为列已经一致了,所以直接将datatable的行转成数组就可以添加到datagridview中了
dataGridView1.Rows.Add(line.ItemArray);
}
展开全部
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
int i = dataGridView1.Rows.Add();
string cellname = "";
switch (col.ColumnName)
{
case "列名1":
{
cellname = "Datagridview列名1";
break;
}
case "列名2":
{
cellname = "Datagridview列名2";
break;
}
default:
{
continue;
}
}
dataGridView1.Rows[i].Cells[cellname].Value = row[col];
}
}
更多追问追答
追问
中间那switch有没有其他简化点的写法,因为列明有点子多~~~
追答
如果你的列名和表的列名是完全一样的,就不需要switch,直接把cellname改成col.ColumnName。但是如果是一样的,就像他们说的用绑定还快点。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接DataGridView.DataSource = DataTable 不可以吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你既然用了控件干嘛不用.DataSource=""绑定?
别忘了**.DataBind()
别忘了**.DataBind()
更多追问追答
追问
一开始就已经设置过表头了,查询出数据绑到datagridview以后数据和字段就都显示到预先设置的表头后面了
追答
你要么清除之前的表头设置,绑定后在dataGridView属性里设置,如果你想灵活一些,建议你使用Repeater控件,还是那样绑定,但你可以自定义重复项
......
..
...
.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DataGridView.DataSource = DataTable
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询