如何把查询到的数据从datatable用for循环加载到datagridview?

sunchangyuan 2010-04-06 09:33:48
如何把查询到的数据从datatable用for循环加载到datagridview?
for (int i = 0; i <= dt.Rows.Count-1; i++)
{
list.OrderDGV[0, M_int_CurrentRow].Value = dt.Rows[i][0].ToString();
}
我这样写只能把数据加载到第一行,如果有两天或者多条数据,datagridview不会自动换行,请问要怎么做?
...全文
750 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
DL_fang 2012-12-14
  • 打赏
  • 举报
回复
我现在做的一个功能就是要把DataTable的数据循环读到DataGridView中 然后保存到数据库 因为我的DataGridView设置了样式,如果直接绑定样式就会没有 那样很丑
itliyi 2010-04-07
  • 打赏
  • 举报
回复
控件直接去掉一个自动显示列名的属性去掉就可以了
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
偶滴神哪,成功了!半天才反应过来!这智商,谢谢各位了!
ouzui 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dlsgliss 的回复:]
datagridview.datasource=datatable;
datagridview.databind();
直接绑定数据源!
[/Quote]
正解
jiandong3471 2010-04-07
  • 打赏
  • 举报
回复
直接绑定数据源
this.Expla_ultraGrid.DataSource = this.ExpnsTable;
taikonhmao67 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 sunchangyuan 的回复:]
引用 21 楼 showlin 的回复:
引用 18 楼 sunchangyuan 的回复:
datagridview.AutoGenerateColumns=false;
datagridview.datasource=datatable;
这样就剩下一个空表头了,下面列是空的,没有数据,但是有行数


每一列在设计器的时候你没有指明datapropertyname属性?
请问要……
[/Quote]

你直接把datapropertyname设置成 你要绑定的列的名字
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 showlin 的回复:]
引用 18 楼 sunchangyuan 的回复:
datagridview.AutoGenerateColumns=false;
datagridview.datasource=datatable;
这样就剩下一个空表头了,下面列是空的,没有数据,但是有行数


每一列在设计器的时候你没有指明datapropertyname属性?
[/Quote]请问要怎么指明,我没用过!
showlin 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sunchangyuan 的回复:]
datagridview.AutoGenerateColumns=false;
datagridview.datasource=datatable;
这样就剩下一个空表头了,下面列是空的,没有数据,但是有行数
[/Quote]

每一列在设计器的时候你没有指明datapropertyname属性?
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
谢谢,这是一个winform程序哦
gramaster 2010-04-07
  • 打赏
  • 举报
回复
呵呵,这样啊,好说啊,用这个事件啊:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)//用属性菜单自动生成就是你自己的行绑定事件了
{

if (e.Row.RowType == DataControlRowType.DataRow)//防止点击header也触发事件
{
e.Row.Attributes.Add("OnDblClick", "javascript:top.location.href='/xxxxxx.aspx?Id=" + e.Row.Cells[x].Text.Trim() + "'");//这里XXXX是你要传值的页面,后面Cells[x]里的X是那个值所在CELL的列数,你有设置主键的话就传主键好了
}
}
传到值的页面这样:string s = Request.QueryString["Id"].Trim();
先说下啊,你这个Id在你后台数据库里有个字段跟它对应,然后你再做SQL查询出对应的订单数据再绑定到gridview。
这个做法其实就是简单的页面传值,当然你的订单数据不多的话你也可以一次传多个值过去,但是不推荐这样做,因为这些数据要保密,而且万一以后有扩展,订单数据字段大大增加的话你传的值太多对性能不大好。


sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
datagridview.AutoGenerateColumns=false;
datagridview.datasource=datatable;
这样就剩下一个空表头了,下面列是空的,没有数据,但是有行数
showlin 2010-04-07
  • 打赏
  • 举报
回复
datagridview.AutoGenerateColumns=false;
datagridview.datasource=datatable;
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
就是一个销售的模块,双击datagridview直接选择销售订单,然后选择,再把这张单的详细信息绑定到之前的datagridview,请我要怎么做好点 ?
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
我现在是用直接绑定的方法了,但是一绑定就有两个表头了(我之前画好一个,为了用户好看),现在怎么解决,把之前的表头去掉还是数据里解决?
anguslaigz 2010-04-07
  • 打赏
  • 举报
回复
DataGridView.DataSource=DataTable就行了
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
就是一个销售的模块,双击datagridview直接选择销售订单,然后选择,再把这张单的详细信息绑定到之前的datagridview,请我要怎么做好点 ?
gramaster 2010-04-07
  • 打赏
  • 举报
回复
可以直接把datatable作为数据源啊,是不是你每行数据要做其他处理才做为最后的数据源啊?你把你的具体要求说清楚吧。
Jelly_tracy 2010-04-07
  • 打赏
  • 举报
回复
这样不是个好的解决方案,为什么不直接把datatable作为数据源给到dgv呢?
wonderful_ecode 2010-04-07
  • 打赏
  • 举报
回复
对,没必要循环,直接绑定数据就可以了,
sunchangyuan 2010-04-07
  • 打赏
  • 举报
回复
因为我之前是画好了datagridview的表头,如果又重新绑定(我是从视图查询的,数据跟表头的一样),那就有两个表头了,如果我直接绑定也可以的,但是怎么把之前画好的表头去掉(不能给一个空的datagridview,那样不好看)
加载更多回复(8)

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧