【发布时间】:2019-10-20 18:50:15
【问题描述】:
我的代码缺少什么?我观看了教程的每一步。
我试了很多次还是出现这个错误:
Private Sub Retrieve()
ListView1.Items.Clear()
Dim sql As String = "SELECT * FROM tblpayin"
cmd = New OleDbCommand(sql, con)
Try
con.Open()
adapter.Fill(dt)
For Each row In dt.Rows
populate(row(1), row(2), row(3), row(4), row(5), row(6), row(7), row(8), row(9), row(10), row(11), row(12), row(13), row(14), row(15), row(16), row(17), row(18), row(19), row(20), row(21), row(22))
Next
dt.Rows.Clear()
con.Close()
Catch ex As Exception
MsgBox(ex.Message)
con.Close()
End Try
End Sub
Private Sub populate(ID As String, FN As String, MN As String, LN As String, AD As String, CN As String, MD As String, PC As String, AM As String, TE As String, M1 As String, M2 As String, M3 As String, M4 As String, M5 As String, M6 As String, M7 As String, M8 As String, M9 As String, M10 As String, M11 As String, M12 As String)
Dim row As String() = New String() {ID, FN, MN, LN, AD, CN, MD, PC, AM, TE, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12}
Dim item As ListViewItem = New ListViewItem(row)
ListView1.Items.Add(item)
End Sub
我想从 MS Access 数据库中加载列表视图中的数据
【问题讨论】:
-
您正在创建一个
OleDbCommand对象,然后在adapter上调用Fill。您在哪里创建adapter和cmd之间的关联? -
鉴于错误消息明确告诉您
SelectCommand属性尚未设置,您认为您应该如何处理包含“SELECT”语句的命令?网络上没有任何示例会告诉您做您正在做的事情,因此请阅读一些示例并按照它们实际告诉您的去做。 -
实际上没有必要创建该命令。数据适配器构造函数将接受“SELECT”语句作为参数并在内部创建命令。它甚至会接受一个连接字符串并在内部创建一个连接。您应该花一些时间阅读相关类的文档。
-
下次也不要使用
row(1), row(2)... 只需使用 i = 1 到 22 的另一个 for 循环并执行row(i)
标签: vb.net