如何将数据库里的数据添加到listview中

 我来答
夜修宸sfjn
2014-04-29 · TA获得超过178个赞
知道答主
回答量:136
采纳率:100%
帮助的人:136万
展开全部
有两种办法 一种是自动绑定 还有一种手动绑定 Private Sub Form_Load() On Error GoTo ErrProceed Dim ObjConnTmp As New ADODB.Connection, DataSource As String DataSource = "数据库名" ObjConnTmp.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DataSource & ";" ObjConnTmp.Open Dim ObjTmpRs As New ADODB.Recordset Set ObjTmpRs.ActiveConnection = ObjConnTmp ObjTmpRs.CursorType = adOpenDynamic ObjTmpRs.LockType = adLockOptimistic '设置游标类型 StrTmpSQL = "Select * from 数据库表名" ObjTmpRs.Open StrTmpSQL FrmMain.ListView1.View = lvwReport FrmMain.ListView1.ColumnHeaders.Clear Call ModListView.SubListViewHeader(FrmMain.ListView1, ObjRsTmp) '加标题 FrmMain.ListView1.ListItems.Clear Call ModListView.SubListViewListItem(FrmMain.ListView1, ObjRsTmp, "End") '加内容 ObjRsTmp.Close: Set ObjRsTmp = Nothing ObjConnTmp.Close: Set ObjConnTmp = Nothing Exit Sub ErrProceed: MsgBox "程序发生错误,原因如下:" & vbCrLf & Err.Description End Sub Public Sub SubListViewHeader(ByVal ListViewName As ListView, ByVal ObjRs As ADODB.Recordset) '功能:将相应的记录的 标题加到ListView中去 Dim clmX As ColumnHeader '设置显示方式 'ListViewName.View = lvwReport '要想显示出网格,请在属性/通用/网格行 设置 nCounter = ObjRs.Fields.Count - 1 ' Dim nWidthGroup() As Integer ' ReDim Preserve nWidthGroup(nCounter) Dim nWidthGroup(8) As Integer k = 100 nWidthGroup(0) = k * 6 '[编号] nWidthGroup(1) = k * 30 '[名称] nWidthGroup(2) = k * 11 '[大小] nWidthGroup(3) = k * 8 '[类型] nWidthGroup(4) = k * 20 '[修改日期] nWidthGroup(5) = k * 20 '[记录日期] nWidthGroup(6) = k * 0 '[文件] For i = 0 To nCounter nWidth = nWidthGroup(i) Set clmX = ListViewName.ColumnHeaders.Add(, , ObjRs.Fields(i).Name, nWidth) Select Case ObjRs.Fields(i).Name Case "类型" clmX.Alignment = lvwColumnCenter Case "大小" clmX.Alignment = lvwColumnRight End Select Next End Sub Public Sub SubListViewListItem(ByVal ListViewName As ListView, ByVal ObjRs As ADODB.Recordset, ByVal StrLocate As String) '功能:将相应的记录的 内容加到ListView中去 'StrLocate 用来定位新加记录在原ListView中的相对位置 Begin,开头 End 结尾 Dim itmX As ListItem '设置显示方式 'ListViewName.View = lvwReport '要想显示出网格,请在属性/通用/网格行 设置 '加内容 If ObjRs.EOF And ObjRs.BOF Then Exit Sub ObjRs.MoveFirst Do Until ObjRs.EOF If StrLocate = "End" Then Set itmX = ListViewName.ListItems.Add(, , ObjRs(0)) Else Set itmX = ListViewName.ListItems.Add(1, , ObjRs(0)) End If '向列表中加入数据 For i = 1 To ObjRs.Fields.Count - 1 StrSubItem = FunNullConvert(ObjRs(i)) Select Case ObjRs.Fields(i).Name Case "大小" '如果是文件大小,则格式化其显示方式为加上千分位 StrSubItem = Format(CLng(StrSubItem), "#,###") Case "修改日期", "记录日期" If StrSubItem <> "" Then StrSubItem = FormatDateTime(CDate(StrSubItem), vbGeneralDate) End Select itmX.SubItems(i) = CStr(StrSubItem) Next i ObjRs.MoveNext Loop End Sub
299﹒7﹒26﹒﹡
2014-04-28 · 超过71用户采纳过TA的回答
知道答主
回答量:129
采纳率:100%
帮助的人:172万
展开全部
上面是手动的 还有一种自动的就是拖一个SqlDataSource 在拖一个listview 设置一下listview的数据源就好了 只要你的数据库表有主键 就能自动的实现添加删除和修改的功能 很简单好用的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mu4B
2014-04-28 · 超过52用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:131万
展开全部
怎么会没有啊 我就是用的vs2005啊 你看看你的工具栏有一个数据 里面就是各种绑定控件 还有你手动绑定类型不对 是因为你要把你数据库读数来的数据都加个.tostring() 就好了 因为listview的项都是string型的 你一个int的怎么能添加到她上面去 加tostring 就好了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式