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

时间:2013-08-30 13:34:47

标签: sql sql-server vb.net email

我在下面有一个从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个电子邮件地址的列表,但是我收到错误

  

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

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

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

你应该在你的sqlrd [“emailAddress”]中使用这样的值(不记得VB.net中的确切格式):

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

答案 1 :(得分: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