兄弟我误入歧途,请大家帮忙,在线等大家答复,不胜感激!!!谢谢您

deandap 2004-01-07 08:55:31
我遇到一件非常奇怪的事情,请行家指教

我读DBF文件里面的数据

举例:
aa字段 bb字段
12 张名
98 李
69 黄

用SQL语句查询出来,LIST 里面显示出来
竟然一直显示 12 张名 ,69 黄
把98 李的丢了,
我代码如下,请您帮忙分析原因,估计少写什么属性,循环都应该正确的

Private Sub Command4_Click()

'-----------------------------读取C盘的cbjxz.dbf文件,连接语句应该都是正确的,因为能够得到cnRST的记录集
Dim cnDBF As New ADODB.Connection
Dim cnRST As New ADODB.Recordset
Dim strConString As String
strConString = "provider=msdasql;Driver={Microsoft Visual FoxPro Driver}" & _
"SourceType=DBF;" & _
"SourceDB=c:\;" & _
"Exclusive=NO;"

cnDBF.ConnectionString = strConString
cnDBF.Open strConString
cnRST.CursorLocation = adUseClient
cnRST.Open "select * from [cbjxz.dbf]", cnDBF, adOpenForwardOnly, adLockReadOnly '-------到这里都运行正确

cnRST.MoveFirst
Do While cnRST.EOF <> True And cnRST.BOF <> True
List1.AddItem cnRST.Fields ("bh") '-------list里面显示重复记录?什么原因?该显示的不显示
cnRST.MoveNext
Loop

End Sub

请问以上代码错误在那里?
为什么list里面显示两个 12 张名 不显示 98 李呢?
是不是指针没有移动,也不对啊,我循环语句没有问题啊,我把记录集付给datagrid控件,也同样显示相同的记录,不显示三条不同的记录
请您帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!不胜感激!
...全文
81 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmzs 2004-01-08
  • 打赏
  • 举报
回复
up?
tonl8 2004-01-08
  • 打赏
  • 举报
回复
up
软侠 2004-01-08
  • 打赏
  • 举报
回复
怎么我用楼主的代码调试一切正常呢?楼应该仔细再看看你的程序中的其他代码是不是把数据库表给修改了,或者你的数据库表内容本来就是这样的啊。
软侠 2004-01-07
  • 打赏
  • 举报
回复
楼主,我按你的代码设计我的程序(直接拷进你的代码到我的程序,只是具体值修改了),运行一切正常,达到预期效果,没有任何异常,是不是楼主的数据库文件cbjxz.dbf的内容就是这样的啊?
jone999 2004-01-07
  • 打赏
  • 举报
回复
cnRST.Open "select * from [cbjxz.dbf]", cnDBF, adOpenForwardOnly, adLockReadOnly
改成cnRST.Open "select * from [cbjxz.dbf]", cnDBF, 1,1
试试?
海牛 2004-01-07
  • 打赏
  • 举报
回复
??????
kmzs 2004-01-07
  • 打赏
  • 举报
回复
up
deandap 2004-01-07
  • 打赏
  • 举报
回复
存在,我的问题是显示的都是 相同的bh,
按理来说
dbf文件里面有什么内容,应该显示什么内容
但是它会将第一条显示n次,下面的该显示的不显示,
northwolves 2004-01-07
  • 打赏
  • 举报
回复
List1.AddItem cnRST.Fields ("bh") '"bh"字段存在否?
Kivic 2004-01-07
  • 打赏
  • 举报
回复
是不是那条纪录被删了
deandap 2004-01-07
  • 打赏
  • 举报
回复
还是一样,显示重复的记录
davidlv 2004-01-07
  • 打赏
  • 举报
回复
你把cnRST.MoveFirst去掉,然后改成冰的语句再试一下
deandap 2004-01-07
  • 打赏
  • 举报
回复
不行,我试过,不是这个问题
循环语句应该没有错误,你代码的运行结果跟原来一样
SoHo_Andy 2004-01-07
  • 打赏
  • 举报
回复
修改为试试

Do While not cnRST.EOF
List1.AddItem cnRST.Fields ("bh")
cnRST.MoveNext
Loop
chenyu5188 2004-01-07
  • 打赏
  • 举报
回复
你那条记录在数据表中是不是逻辑删除了?
kimurakenshin 2004-01-07
  • 打赏
  • 举报
回复
if cnrst.eof and cnrst.bof then exit sub
curst.movefirst
do while not cnrst.eof
List1.AddItem cnRST.Fields!bh
cnRST.MoveNext
loop
cnrst.close
kimurakenshin 2004-01-07
  • 打赏
  • 举报
回复
up up
wsd309 2004-01-07
  • 打赏
  • 举报
回复
cnRST.MoveNext改成cnRST.recordset.MoveNext试试

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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