错误“message.To.Add(strCommandText);”当我尝试从数据库中取出电子邮件数据发送电子邮件时。
public partial class beforeLogin_Auto_StaffPage:System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) {
}
protected void btnApprove_Click(object sender, EventArgs e)
{
string approve = "Approve";
string strConnectionString = ConfigurationManager.ConnectionStrings["ChadBankConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(strConnectionString);
myConnection.Open();
string strCommandText3 = "UPDATE AutoLoan SET autoStatus ='" + approve + "'WHERE userID= '" + Session["userID"] + "';";
SqlCommand myCommand3 = new SqlCommand(strCommandText3, myConnection);
myCommand3.ExecuteNonQuery();
string strCommandText = "SELECT custEmail From Customer WHERE userID= '" + Session["userID"] + "';";
SqlCommand myCommand = new SqlCommand(strCommandText, myConnection);
myCommand.ExecuteNonQuery();
string strCommandText1 = "SELECT loginName From Customer WHERE userID= '" + Session["userID"] + "';";
SqlCommand myCommand1 = new SqlCommand(strCommandText1, myConnection);
myCommand1.ExecuteNonQuery();
NetworkCredential myCred = new NetworkCredential("CHADBank2013@gmail.com", "627726627");
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add(strCommandText);
message.From = new MailAddress("CHADBank2013@gmail.com");
message.Subject = "CHAD Bank: Auto Loan Application Approved";
message.Body = "Hi " + strCommandText1 + "," + Environment.NewLine + Environment.NewLine +
"Your application for your auto loan are approved, payment will start on the next month";
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 587;
client.Credentials = myCred;
client.EnableSsl = true;
client.Send(message);
myConnection.Close();
}
protected void gvDetail_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = gvDetail.SelectedRow;
Session["userID"] = row.Cells[10].Text;
}
}
答案 0 :(得分:2)
您正在添加不是电子邮件,而是在收件人列表中添加查询。我假设您要从查询中检索电子邮件地址:
string strCommandText = "SELECT custEmail From Customer WHERE userID= '" + Session["userID"] + "';";
SqlCommand myCommand = new SqlCommand(strCommandText, myConnection);
var email = myCommand.ExecuteScalar();
//rest of the code
message.To.Add(email);
你也应该使用参数化查询。
答案 1 :(得分:0)
环境:MSSQL / .NET(v4.5 +)
今天开始追寻海报的错误。虽然我知道这可能与发布者无关,但可能与另一个具有相同错误的访问者有关。
如果您复制了数据库,并更改了登录用户名/ pw / spid / ID /等等,则在花费大量时间查看所有电子邮件列表之前,请在页面中看到此错误-确保您循环应用程序池并清除相关的缓存。
我希望这可以节省一些时间。
grrr ...