如何将数据库里的数据添加到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 的一行,将视图添加到单击的项目?