所以我的另一个问题的后续问题,我知道如何在表单中通过电子邮件发送电子邮件和文本,但我在引用电子邮件部分正文中的listview数据时遇到了一些问题。
结果如下:电子邮件中的“Lis Lis”。
即使我的列表视图中有3列和2行数据。我不知道如何引用列表视图,有谁知道吗?代码如下所示。
Private Sub LoadPDF_Data()
sqlCon = New SqlConnection(stlCon)
Using (sqlCon)
Dim sqlComm As New SqlCommand
sqlComm.Connection = sqlCon
sqlComm.CommandText = "sp_GetDocs"
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Parameters.AddWithValue("@DOCID", Integer.Parse(TextBox1.Text.Trim()))
sqlCon.Open()
Dim sqlReader As SqlDataReader = sqlComm.ExecuteReader()
Using sqlReader
Dim table As New DataTable
table.Load(sqlReader)
ListView1.View = View.Details
ListView1.GridLines = True
ListView1.Columns.Add("PDF Name", 200, HorizontalAlignment.Left)
ListView1.Columns.Add("PDF Description", 200, HorizontalAlignment.Left)
ListView1.Columns.Add("PDF Location", 200, HorizontalAlignment.Left)
For Each row In table.Rows
Dim PDF As New ListViewItem
PDF.Text = row.Item(0)
PDF.SubItems.Add(row.item(1))
PDF.SubItems.Add(row.item(2))
For i = 1 To table.Columns.Count - 1
PDF.SubItems.Add(row(i).ToString(0))
PDF.SubItems.Add(row(i).ToString(1))
PDF.SubItems.Add(row(i).ToString(2))
Next
ListView1.Items.Add(PDF)
Next
ListView1.EndUpdate()
End Using
End Using
End Sub
Private Function BuildTheListViewItemsToSend(ByVal path As ListView)
Dim sb As New System.Text.StringBuilder
For Each item As ListViewItem In ListView1.Items
For i = 1 To ListView1.Items.Count - 1
sb.Append((ListView1.Items(i).ToString(0)) & (ListView1.Items(i).ToString(1)) & (ListView1.Items(i).ToString(2)) & vbCrLf)
Next
Next
Return sb.ToString()
End Function
Private Sub EmailInfo()
Dim MailFrom As System.Net.Mail.MailAddress
Dim MailTo As System.Net.Mail.MailAddress
Dim MailSubject As String
Dim MailBody As String
Dim Mail As New MailMessage
Dim MailClient As SmtpClient
Dim List As String = BuildTheListViewItemsToSend(ListView1)
Try
MailBody = (BuildTheListViewItemsToSend(ListView1))
MailSubject = ("Documents for the DOCID: " + TextBox1.Text)
MailFrom = New MailAddress(TextBox2.Text)
MailTo = New MailAddress(TextBox3.Text)
Mail.From = MailFrom
Mail.To.Add(MailTo)
Mail.Subject = MailSubject
Mail.Body = MailBody
MailClient = New SmtpClient("smtp.office365.com")
MailClient.Port = 587
MailClient.EnableSsl = True
MailClient.Credentials = New System.Net.NetworkCredential(TextBox2.Text, "password", "domain")
MailClient.Send(Mail)
MsgBox("Email Sent")
Catch ex As Exception
MsgBox("Error")
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
LoadPDF_Data()
End Sub
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
End Sub
Private Sub Email_Click(sender As Object, e As EventArgs) Handles Email.Click
EmailInfo()
End Sub发布于 2016-05-12 23:28:30
您将在函数中循环两次ListView项。此代码将把您的ListView内容转换为一个字符串:
For Each item As ListViewItem In ListView1.Items
For Each column As ListViewSubItem In item.SubItems
sb.Append(column.Text)
Next
sb.Append(vbCrLf)
Next希望你能根据你的需要来调整它。
https://stackoverflow.com/questions/37190840
复制相似问题