C# 怎么把查询到的数据从datatable用foreach循环加载到datagridview

datagridview已经设置过表头怎么把查询到的数据从datatable用foreach循环加载到datagridview... datagridview已经设置过表头
怎么把查询到的数据从datatable用foreach循环加载到datagridview
展开
 我来答
lzh3452
推荐于2018-02-28 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:855万
展开全部

通过取得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);
}
leiyangbdwk
推荐于2017-11-25 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4367万
展开全部
            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。但是如果是一样的,就像他们说的用绑定还快点。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanes2005
2013-07-31 · 超过35用户采纳过TA的回答
知道答主
回答量:115
采纳率:100%
帮助的人:50.7万
展开全部
直接DataGridView.DataSource = DataTable 不可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
睿思博信
2013-07-31 · TA获得超过142个赞
知道答主
回答量:73
采纳率:0%
帮助的人:33.7万
展开全部
你既然用了控件干嘛不用.DataSource=""绑定?
别忘了**.DataBind()
更多追问追答
追问
一开始就已经设置过表头了,查询出数据绑到datagridview以后数据和字段就都显示到预先设置的表头后面了
追答
你要么清除之前的表头设置,绑定后在dataGridView属性里设置,如果你想灵活一些,建议你使用Repeater控件,还是那样绑定,但你可以自定义重复项
......

..

...

.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凌晨的那抹微笑
2013-07-31 · TA获得超过115个赞
知道答主
回答量:169
采纳率:0%
帮助的人:47.2万
展开全部
DataGridView.DataSource = DataTable
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式