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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据库里的数据添加到listview中相关的知识,希望对你有一定的参考价值。

有两种办法 一种是自动绑定 还有一种手动绑定
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
参考技术A 上面是手动的 还有一种自动的就是拖一个SqlDataSource 在拖一个listview
设置一下listview的数据源就好了 只要你的数据库表有主键 就能自动的实现添加删除和修改的功能
很简单好用的
参考技术B 怎么会没有啊 我就是用的vs2005啊 你看看你的工具栏有一个数据 里面就是各种绑定控件
还有你手动绑定类型不对 是因为你要把你数据库读数来的数据都加个.tostring()
就好了 因为listview的项都是string型的 你一个int的怎么能添加到她上面去 加tostring 就好了

在c#如何将listview中的数据保存到数据库中的表中

感激

private void listView1_Click(object sender, EventArgs e)//listview点击事件

if (this.listView1.SelectedItems == null) return;
ListViewItem item = this.listView1.SelectedItems[0];//选中的ltem

if (this.comboBox1.SelectedIndex == -1) return;
if (item == null) return;

//把每一项里的值取出来
string a = item.SubItems[0].Text.ToString();
string b = item.SubItems[1].Text.ToString();
string c = item.SubItems[2].Text.ToString();
string d = item.SubItems[3].Text.ToString();

然后你用ADO连接数据库,写insert语句,把取出来的值当参数传给SQL语句。就可以了 思路大概是这样的,希望你帮助你~
参考技术A Ctrl+C
Ctrl+V

以上是关于如何将数据库里的数据添加到listview中的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据添加到 listView 的自定义 BaseAdapter - Android

android listview中如何将获取来的数据添加至listview尾部

避免将重复项添加到 listview android

如何更新 ListView 的一行,将视图添加到单击的项目?

如何将数据从一个 Activity 中的 ListView 传递到另一个 Activity 上的 TextView?

请问VB6中ListView控件如何和数据库绑定,比如说ADODC控件