| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:求助,如何把ListView1内数据更新到SQLite数据库
取消只看楼主 加入收藏
clyfd
Rank: 2
等 级:论坛游民
帖 子:23
专家分:38
注 册:2020-7-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求助,如何把ListView1内数据更新到SQLite数据库
我想把数据库内的数据根据用户编号进行更新,判断用户编号是否存在,如果存在就批量更新,不存在就批量录入
Private Sub Command12_Click()
Dim i As Integer
Set rs = cnn.OpenRecordset("Select * from 用户明细") ' 打开员工信息表的记录集
' 遍历列表视图中的每一行数据
For i = 1 To ListView1.ListItems.Count
    ' 获取当前行的每个字段数据
    Dim id As String
    Dim name As String
    Dim age As Integer
    Dim department 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
    YGBH = ListView1.ListItems(i).ListSubItems(5).Text
    MM = ListView1.ListItems(i).ListSubItems(6).Text
    YGXZ = ListView1.ListItems(i).ListSubItems(7).Text
    GZGW = ListView1.ListItems(i).ListSubItems(8).Text
    GZSJ = ListView1.ListItems(i).ListSubItems(9).Text
    DH = ListView1.ListItems(i).ListSubItems(10).Text
    GZZT = ListView1.ListItems(i).ListSubItems(11).Text
    RZSJ = ListView1.ListItems(i).ListSubItems(12).Text
    LGSJ = ListView1.ListItems(i).ListSubItems(13).Text
    SFZH = ListView1.ListItems(i).ListSubItems(14).Text
    BZ = ListView1.ListItems(i).ListSubItems(15).Text
    ABZ = ListView1.ListItems(i).ListSubItems(16).Text
    ' 检查数据库中是否已存在相同的用户编号
rs.FindFirst "用户编号='" & YGBH & "'"
If rs.EOF Then ' 如果数据库中没有找到相同的用户编号就录入
    rs.AddNew ' 添加新记录
Else ' 如果数据库中已经存在相同的用户编号就更新
    rs.Fields("地区").Value = XM
    rs.Fields("本数").Value = PY
    rs.Fields("用户编号").Value = XB
    rs.Fields("户名").Value = ZZMM
    rs.Fields("详细地址").Value = YGBH
    rs.Fields("蓝牌地址").Value = MM
    rs.Fields("单元").Value = YGXZ
    rs.Fields("楼层").Value = GZGW
    rs.Fields("户号").Value = GZSJ
    rs.Fields("用户状态").Value = DH
    rs.Fields("应用分类").Value = GZZT
    rs.Fields("保单类型").Value = RZSJ
    rs.Fields("保单到期日").Value = LGSJ
    rs.Fields("报警器安装人").Value = SFZH
    rs.Fields("核对标记").Value = BZ
    rs.Fields("备注").Value = ABZ
    rs.UpdateBatch ' 保存更新的数据
End If
    rs.MoveNext ' 移动到下一条记录
Next i
End Sub
图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册

点击导入数据
在点击批量更新,但是没成功
批量更新.rar (4.47 MB)

请老师帮忙看看如何处理
搜索更多相关主题的帖子: Text Value 数据 Fields 用户 
2024-04-23 21:34
clyfd
Rank: 2
等 级:论坛游民
帖 子:23
专家分:38
注 册:2020-7-11
收藏
得分:0 
回复 2楼 cwa9958
老师  报错
'Dim Rs As New ADODB.Recordset
'rs.open sqlstr, cnn

我改成
Private Sub Command12_Click()
Dim i As Integer
Dim sqlstr As String
Set Rs = cnn.OpenRecordset("Select * from 用户明细") ' 打开员工信息表的记录集
' 遍历列表视图中的每一行数据
For i = 1 To ListView1.ListItems.Count
Print ' 获取当前行的每个字段数据
 Dim id As String
 Dim name As String
 Dim age As Integer
 Dim department As String
 Dim rsLogin As cRecordset
 ' 从 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
 YGBH = ListView1.ListItems(i).ListSubItems(5).Text
 MM = ListView1.ListItems(i).ListSubItems(6).Text
 YGXZ = ListView1.ListItems(i).ListSubItems(7).Text
 GZGW = ListView1.ListItems(i).ListSubItems(8).Text
 GZSJ = ListView1.ListItems(i).ListSubItems(9).Text
 DH = ListView1.ListItems(i).ListSubItems(10).Text
 GZZT = ListView1.ListItems(i).ListSubItems(11).Text
 RZSJ = ListView1.ListItems(i).ListSubItems(12).Text
 LGSJ = ListView1.ListItems(i).ListSubItems(13).Text
 SFZH = ListView1.ListItems(i).ListSubItems(14).Text
 BZ = ListView1.ListItems(i).ListSubItems(15).Text
 ABZ = ListView1.ListItems(i).ListSubItems(16).Text
 ' 检查数据库中是否已存在相同的用户编号
sqlstr = "select * from [用户明细] where [用户编号] ='" & YGBH & "'"

Set rsLogin = cnn.OpenRecordset(sqlstr)
If Rs.EOF Then ' 如果数据库中没有找到相同的用户编号就录入
 Rs.AddNew ' 添加新记录
 Rs.Fields("用户编号").Value = YGBH
 Rs.Fields("地区").Value = XM
 Rs.Fields("本数").Value = PY
 Rs.Fields("用户编号").Value = XB
 Rs.Fields("户名").Value = ZZMM
 Rs.Fields("详细地址").Value = YGBH
 Rs.Fields("蓝牌地址").Value = MM
 Rs.Fields("单元").Value = YGXZ
 Rs.Fields("楼层").Value = GZGW
 Rs.Fields("户号").Value = GZSJ
 Rs.Fields("用户状态").Value = DH
 Rs.Fields("应用分类").Value = GZZT
 Rs.Fields("保单类型").Value = RZSJ
 Rs.Fields("保单到期日").Value = LGSJ
 Rs.Fields("报警器安装人").Value = SFZH
 Rs.Fields("核对标记").Value = BZ
 Rs.Fields("备注").Value = ABZ
Else ' 如果数据库中已经存在相同的用户编号就更新
 Rs.Fields("地区").Value = XM
 Rs.Fields("本数").Value = PY
 Rs.Fields("用户编号").Value = XB
 Rs.Fields("户名").Value = ZZMM
 Rs.Fields("详细地址").Value = YGBH
 Rs.Fields("蓝牌地址").Value = MM
 Rs.Fields("单元").Value = YGXZ
 Rs.Fields("楼层").Value = GZGW
 Rs.Fields("户号").Value = GZSJ
 Rs.Fields("用户状态").Value = DH
 Rs.Fields("应用分类").Value = GZZT
 Rs.Fields("保单类型").Value = RZSJ
 Rs.Fields("保单到期日").Value = LGSJ
 Rs.Fields("报警器安装人").Value = SFZH
 Rs.Fields("核对标记").Value = BZ
 Rs.Fields("备注").Value = ABZ

End If
Rs.UpdateBatch ' 将所有新添加的记录保存到数据库中
 Rs.MoveLast ' 移动到最后一条记录
Next i
End Sub
还是不行


2024-04-24 20:11
clyfd
Rank: 2
等 级:论坛游民
帖 子:23
专家分:38
注 册:2020-7-11
收藏
得分:0 
关键字没起作用,全修改了
2024-04-24 20:21
clyfd
Rank: 2
等 级:论坛游民
帖 子:23
专家分:38
注 册:2020-7-11
收藏
得分:0 
回复 6楼 独木星空
老师,能帮我看看怎么解决问题不,现在确实论坛不火,但是还是有喜欢VB的人,并且在学习中的人在这里寻找帮助寻找知识点
2024-04-26 17:44
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.013755 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved