0

我在下面有从 SQL Server 数据库读取的 VB.NET 代码。

Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("GasNominationsConnectionString").ConnectionString)

    conn.Open()
    Using cmd As SqlCommand = conn.CreateCommand
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "getEmailAddress"
        cmd.Parameters.Add("company", SqlDbType.VarChar).Value = "RWET"
        Dim sqlrd As SqlDataReader = cmd.ExecuteReader()
        If sqlrd.HasRows Then
            While sqlrd.Read()
                msg.[To].Add(New MailAddress("emailAddress"))
            End While
        End If
    End Using

End Using

SQL Server 表中的数据是 2 个电子邮件地址的列表,但出现错误

指定的字符串不是电子邮件地址所需的格式

任何想法我做错了什么?

4

2 回答 2

0

在我看来,您正在使用以下行创建一个值为“emailAddress”的新 MailAddress 对象:

msg.[To].Add(New MailAddress("emailAddress"))

“emailAddress”确实不是有效的电子邮件地址。

您应该在 sqlrd["emailAddress"] 中使用类似这样的值(不记得 VB.net 中的确切格式):

msg.[To].Add(New MailAddress(sqlrd["emailAddress"]))
于 2013-08-30T13:40:21.493 回答
0

问题是这"emailAddress"不是电子邮件地址。您需要从读者那里阅读:

Using sqlrd As SqlDataReader = cmd.ExecuteReader()
    If sqlrd.HasRows Then
        While sqlrd.Read()
             Dim email = sqlrd.GetString(sqlrd.GetOrdinal("emailAddress"))
             msg.[To].Add(New MailAddress(email))
        End While
    End If
End Using
于 2013-08-30T13:41:36.913 回答