Listview 添加项目,但显示以下错误。
Overload resolution failed beacause no 'ADD' can be called with these arguments:
'Public Function Add(text As String) As System.Windows.Forms.ListViewItem.ListViewSubItem':
Argument matching parameter 'text' cannot convert from 'DBNull' to 'String'.
'Public Function Add(item As System.Windows.Forms.ListViewItem.ListViewSubItem) As System.Windows.Forms.ListViewItem.ListViewSubItem':
Argument matching parameter 'item' cannot convert from 'DBNull' to 'ListViewSubItem'.
这些是代码:
ub loadReservedApplication()
'Try
Dim sql As String = "SELECT id," & _
"(SELECT name FROM `applicants` WHERE `applicants`.`id`=`applicant_id` ) as applicants," & _
"(SELECT filesize FROM `applicants` WHERE `applicants`.`id`=`applicant_id` ) as filesize," & _
"(SELECT img FROM `applicants` WHERE `applicants`.`id`=`applicant_id` ) as pic," & _
"(SELECT `jobTitle` FROM `jobs` WHERE `jobs`.`id`=`job_id`) as job,(SELECT count(*) FROM `applicants_doc` WHERE `application_id`= `job_applicant`.`id`) as docs,(SELECT `contact_number` FROM `applicants` WHERE `applicants`.`id`=`applicant_id`) as contact FROM `job_applicant`ORDER BY `job_applicant`.`date` DESC "
tb = execute_and_fetch(sql)
Dim ctr As Integer = 1
ListView1.Items.Clear()
For Each r As DataRow In tb.Rows
Dim lst As New ListViewItem
ListView1.Items.Add(lst)
lst.Text = ctr
lst.SubItems.Add(r("applicants"))
If IsDBNull(r("job")) Then r("job") = "N/a"
lst.SubItems.Add(r("job"))
lst.SubItems.Add(r("docs"))
lst.SubItems.Add(r("contact"))
lst.Tag = r("id")
ctr += 1
Next
'Catch ex As Exception
' MsgBox(ex.Message)
'End Try
End Sub
答案 0 :(得分:0)
尝试这种方法,并根据您的情况实施......
Public Sub loadtitle()
Dim SQL As String = "SELECT * FROM titles"
Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim i As Integer
With myCommand
.CommandText = SQL
.Connection = conn
End With
With myAdapter
.SelectCommand = myCommand
.Fill(myData)
End With
titlelist.Items.Clear()
For i = 0 To myData.Rows.Count - 1
With titlelist
.Items.Add(myData.Rows(i)("title_id"))
With .Items(.Items.Count - 1).SubItems
.Add(myData.Rows(i)("title_name"))
.Add(myData.Rows(i)("title_cat"))
.Add(myData.Rows(i)("title_format"))
.Add(myData.Rows(i)("title_copies"))
.Add(myData.Rows(i)("title_rate"))
End With
End With
Next
End Sub
答案 1 :(得分:0)
您可以尝试这样做:它会在尝试将其添加到子项之前检查每个值:
For Each r As DataRow In tb.Rows
Dim lst As New ListViewItem
ListView1.Items.Add(lst)
lst.Text = ctr
if isDBNull(r("applicants")) then
lst.SubItems.Add("N/a")
else
lst.SubItems.Add(r("applicants"))
end if
if isDBNull(r("job")) then
lst.SubItems.Add("N/a")
else
lst.SubItems.Add(r("job"))
end if
if isDBNull(r("docs")) then
lst.SubItems.Add("N/a")
else
lst.SubItems.Add(r("docs"))
end if
if isDBNull(r("contact")) then
lst.SubItems.Add("N/a")
else
lst.SubItems.Add(r("contact"))
end if
if isDBNull(r("id")) then
lst.Tag("N/a")
else
lst.Tag(r("id"))
end if
ctr += 1
Next