关于VB中listview控件与数据库连接的有关问题, 高分

关于VB中listview控件与数据库连接的问题,急 高分
我想用listview将userinfo表中的数据显示出来,可是总是只能显示1列数据,奇怪!全部代码已经写上了,请高手帮我看看,不胜感激!

Private Sub Form_Load()
Dim pubConn As New ADODB.Connection '读数据库
Dim rsTable As New ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim addlist1 As ListItem
Set rsTable = New ADODB.Recordset
Set pubConn = New ADODB.Connection

pubConn.ConnectionString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;password=zzq=1861;Initial Catalog=HRMIS;Data Source=(local)"
pubConn.Open
rsTable.CursorLocation = adUseClient


ListView1.FullRowSelect = True '允许整行选择
ListView1.GridLines = True '显示网格
ListView1.View = 3 '以报表形式显示
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add 1, , "用户名", 1000
ListView1.ColumnHeaders.Add 2, , "描述", 1000


txtsql = "select * from userinfo"
Set rsTable = ExecuteSQL(txtsql, msgtext)
While (rsTable.EOF = False)
Set addlist1 = ListView1.ListItems.Add() '将各项数据加入list列表

addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))
addlist1.SubItems(0) = IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid")) --为什么报错,subitms只能是1?

rsTable.MoveNext

Wend

rsTable.close
pubConn.close




End Sub

------解决方案--------------------
While (rsTable.EOF = False)
Set addlist1 = ListView1.ListItems.Add() '将各项数据加入list列表

addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))
addlist1.SubItems(0) = IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid")) --为什么报错,subitms只能是1?

rsTable.MoveNext

Wend
修改如下:
While (rsTable.EOF = False)
Set addlist1 = ListView1.ListItems.Add(,,IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid"))) '将各项数据加入list列表

addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))

rsTable.MoveNext

Wend

------解决方案--------------------
VB code
txtsql = "select * from userinfo"
Set rsTable = ExecuteSQL(txtsql, msgtext)
   ListView1.ListItems.Clear
   If rsTable.RecordCount <> 0 Then
       For i = 1 To rsTable.RecordCount
          InsertBook rsTable.Fields("uid"), rsTable.Fields("userdes")
          rsTable.MoveNext
       Next i
   End If
   rsTable.close
   pubConn.close

Private Sub InsertBook(sText1 As String, sText2 As String)
On Error Resume Next
    If Trim(sText1) = "" Then Exit Sub
    Dim lstTmp As ListItem
    Set lstTmp = ListView1.ListItems.Add
        lstTmp.Text = Trim(sText1)
        lstTmp.SubItems(1) = Trim(sText2)  
End Sub