1

此行错误“message.To.Add(strCommandText);” 当我尝试从数据库中获取电子邮件数据以发送电子邮件时。


公共部分类 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;

}

}

4

2 回答 2

4

您添加的不是电子邮件,而是查询到您的收件人列表。我假设您想从查询中检索电子邮件地址:

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);

你也应该使用参数化查询。

于 2013-07-29T09:15:54.243 回答
1

环境:MSSQL / .NET (v4.5+)

今天一直在寻找海报的错误。虽然我知道这可能与海报无关,但它可能与具有相同错误的另一位访问者相关。

如果您复制了一个数据库,并更改了登录用户名/pw/spid/ID/ 等等,并且您在页面中收到此错误 - 在您花费大量时间查看所有电子邮件列表之前 - 请确保您循环应用程序池并清除相关缓存。

我希望这可以节省一些时间。

呜呜呜……

于 2020-03-30T20:44:34.083 回答