「lnkupdate_click」というボタンがあります。基本的に、クリックすると「tbl_security」というテーブルにアクセスするだけで、そこからフィールド「pass」がランダムな 4 桁の数字で更新されます。フィールド「patrol」は 1 または true です。 .
以下に例を示します。
Code Pass Patrol
TES 1234 1
ASD 4321 1
MOR 6789 1
SAI 0959 1
私が行き詰まっているのはこれです。ここからやりたいことは、データベースから更新された情報を電子メールで送信することだけです。基本的に、上記の表のすべての情報を含むメールを生成します。ただし、「foreach」ループの下に赤い線が表示され、このエラー メッセージが表示されます。
「'int' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントは 'int' 型の変数を操作できません」
私のコードは以下の通りです:
protected void lnkUpdate_Click(object sender, EventArgs e)
{
{
string queryUpdateAllFields;
string queryGetAllUpdatedField;
StringBuilder sb = new StringBuilder();
queryGetAllUpdatedField = @"update tbl_Security set
Pass = round(rand(CAST(CAST(NEWID() AS VARBINARY(4)) AS SMALLINT))* 9000,0) + 1000
WHERE Patrol = 1";
queryGetAllUpdatedField = @"SELECT Code, Pass, Patrol
FROM tbl_Security
WHERE Patrol = 1";
var random = new Random();
//queries to update and retrieve
SqlHelper.ExecuteSqlNonQuery(queryUpdateAllFields);
var results = SqlHelper.ExecuteSqlNonQuery(queryGetAllUpdatedField);
//loop over the results and append to StringBuilder instance.
sb.Append("Below are all the fields that have been updated: <br /><br />");
foreach(var r in results)
{
sb.AppendLine("<hr />");
sb.AppendLine("Code: " + r.Code + " Pass: " + r.Pass + " Patrol: " + r.Patrol); //for Patrol
}
//Email showing all updated pass's with codes
MailAddress to = new MailAddress("");
MailAddress from = new MailAddress("");
MailMessage message = new MailMessage(from, to);
message.Subject = "Subject Line Here";
message.Body = sb.ToString(); //attach StringBuilder - This will be built up of all the rows updated in the DataBase
SmtpClient mailClient = new SmtpClient();
mailClient.Port = 25;
//finally send message here
mailClient.Send(msg);
}
}