首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用vb.net在电子邮件部分包含多列的引用列表视图

使用vb.net在电子邮件部分包含多列的引用列表视图
EN

Stack Overflow用户
提问于 2016-05-12 23:05:38
回答 2查看 339关注 0票数 0

所以我的另一个问题的后续问题,我知道如何在表单中通过电子邮件发送电子邮件和文本,但我在引用电子邮件部分正文中的listview数据时遇到了一些问题。

结果如下:电子邮件中的“Lis Lis”。

即使我的列表视图中有3列和2行数据。我不知道如何引用列表视图,有谁知道吗?代码如下所示。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-05-12 23:28:30

您将在函数中循环两次ListView项。此代码将把您的ListView内容转换为一个字符串:

代码语言:javascript
复制
    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

希望你能根据你的需要来调整它。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37190840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档