2013-08-30 17 views
0

我的VB.NET代码低于从SQL Server数据库读取的代码。错误:指定的字符串不是电子邮件地址所需的格式

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个电子邮件地址列表,但我得到一个错误

The specified string is not in the form required for an e-mail address

任何想法我做错了吗?

回答

0

在我看来,你是创造与价值“EMAILADDRESS”一个新的MailAddress对象与此行:

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

“EMAILADDRESS”的确不是一个有效的电子邮件地址。

你应该把你的价值在你sqlrd [“EMAILADDRESS”]有这样的事情(不记得在VB.net确切的格式):

msg.[To].Add(New MailAddress(sqlrd["emailAddress"])) 
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 
相关问题