| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1589 人关注过本帖
标题:求助,如何把ListView1内数据更新到SQLite数据库
只看楼主 加入收藏
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
没有环境,不测试了。说一下你原设计


rs.FindFirst "用户编号='" & YGBH & "'"
If rs.EOF Then ' 如果数据库中没有找到相同的用户编号就录入
    rs.AddNew ' 添加新记录                                           《- 这里是添加了新记录
Else ' 如果数据库中已经存在相同的用户编号就更新                      《- 添加新记录,这里不执行。这里应该是 end if,因为不得是查找到了,还是添加新记录后,都要执行后面的更新部分。
    rs.Fields("地区").Value = XM
    rs.Fields("本数").Value = PY
......
    rs.UpdateBatch ' 保存更新的数据
End If                                       《- 对应的这句不要了。
    rs.MoveNext ' 移动到下一条记录
Next i
-------------
或者在 if 里添加 用户编号 ,其他部分都是公菜
    ' 检查数据库中是否已存在相同的用户编号
rs.FindFirst "用户编号='" & YGBH & "'"
If rs.EOF Then ' 如果数据库中没有找到相同的用户编号就录入
    rs.AddNew ' 添加新记录
    rs.Fields("用户编号").Value = XB      '写入用户编号
end if
' ------添加了数据后继续添加其他数据,查找到了更新该用户编号的其他数据-------
    rs.Fields("地区").Value = XM
    rs.Fields("本数").Value = PY
'    rs.Fields("用户编号").Value = XB  这行就不要了,放到 if 里执行,不需重复写入
..........
-----------------
你其实应该生成 SQL 命令去写入。





授人于鱼,不如授人于渔
早已停用QQ了
2024-04-27 19:07
clyfd
Rank: 2
等 级:论坛游民
帖 子:23
专家分:38
注 册:2020-7-11
收藏
得分:0 
回复 11楼 风吹过b
谢谢老师的帮助,确实问题比较多,要学习的地方太多了,
经过老师的提示,我修改为
Dim i As Integer
Dim sqlstr As String
' 遍历列表视图中的每一行数据
For i = 1 To ListView1.ListItems.Count
    ' 获取当前行的每个字段数据
    Dim XM As String
    Dim PY As String
    Dim XB As String
    Dim ZZMM As String
    ' 从 ListView 中获取数据
    XM = ListView1.ListItems(i).ListSubItems(1).Text ' 地区
    PY = ListView1.ListItems(i).ListSubItems(2).Text ' 本数
    XB = ListView1.ListItems(i).ListSubItems(3).Text ' 用户编号
    ZZMM = ListView1.ListItems(i).ListSubItems(4).Text ' 户名
    ' 检查数据库中是否已存在相同的用户编号
    sqlstr = "SELECT * FROM [用户明细] WHERE [用户编号] = '" & XB & "'"  
    Set rs = cnn.OpenRecordset(sqlstr)
    If Not rs.EOF Then ' 如果数据库中已经存在相同的用户编号就更新
        sqlstr = "UPDATE [用户明细] SET [本数] = '" & PY & "', [户名] = '" & ZZMM & "' WHERE [用户编号] = '" & XB & "'"
        cnn.Execute sqlstr
    Else ' 如果数据库中没有找到相同的用户编号就录入
        rs.AddNew ' 添加新记录
        rs.Fields("用户编号").Value = XB
        rs.Fields("地区").Value = XM
        rs.Fields("本数").Value = PY
        rs.Fields("户名").Value = ZZMM   
       rs.UpdateBatch ' 将所有新添加的记录保存到数据库中
    End If
Next i

老师看看是这个逻辑不

[此贴子已经被作者于2024-4-29 19:52编辑过]

2024-04-27 21:40
快速回复:求助,如何把ListView1内数据更新到SQLite数据库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012550 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved