求一个for each 语句写法

aclan 2009-03-25 09:01:10
要实现:
在gridview中已显示出4个字段的内容,(这4个字段是通过外键从3个表里选出的)现在要通过一个循环语句将gridview里的每个字段中的值全部写入excel里.表头设置正常,可以显示出来,但是运行到For Each dr In bookinfo.Tables(0).Rows
时报错:无法找到表 0.排错提示:确保列表中的最大索引小于列表的大小.
确保数据列名称正确.
确保索引不是负数.
获取此异常的常规帮助.
我点开了每一个却不明白错在哪里,不知怎样改?请哪位高人给指点一下!
代码如下:

'设置excel的表头
oSheet.Cells(1, 1).Value = "图书编号"
oSheet.Cells(1, 2).Value = "图书名称" '图书编号和图书名称字段来自图书表
oSheet.Cells(1, 3).Value = "借阅人姓名" '借阅人姓名字段来自读者表
oSheet.Cells(1, 4).Value = "还书日期" '还书日期字段来自借书表

Dim i As Integer = 2
Dim bookinfo As New DataSet

'循环dataset的rows collection,并在每行中编写到excel的单元格中
Dim dr As DataRow
For Each dr In bookinfo.Tables(0).Rows
oSheet.Range("A" & i.ToString).Value = dr("图书编号")
oSheet.Range("B" & i.ToString).Value = dr("图书名称")
oSheet.Range("C" & i.ToString).Value = dr("借阅人姓名")
oSheet.Range("D" & i.ToString).Value = dr("还书日期")
i += 1

Next
谢谢!
...全文
125 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmy3918 2009-03-27
  • 打赏
  • 举报
回复
加个断点看看bookinfo.Tables(0).Rows有多少行..
xue1234567890 2009-03-27
  • 打赏
  • 举报
回复
支持1楼..

以及还有没初始化..
Dim dr As New DataRow
fanr_forever 2009-03-26
  • 打赏
  • 举报
回复
最少也应该在bookInfo里面加一个datatable,这个table里面放你要循环的数据!
knightwayne 2009-03-26
  • 打赏
  • 举报
回复
少数据!
lwllp2007 2009-03-26
  • 打赏
  • 举报
回复
你的bookInfo没有填充数据的语句啊,除非你上面的代码没全部写出来
teerhu 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 coodd 的回复:]
报错说得很明确,bookInfo里没有数据嘛
[/Quote]
楼上有说得是
coodd 2009-03-25
  • 打赏
  • 举报
回复
报错说得很明确,bookInfo里没有数据嘛

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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