在ASPX中更新语句后发送电子邮件

时间:2014-05-03 16:01:27

标签: asp.net email formview

我正在为学校的项目工作建立一个网站。 主要想法是用户可以报告损坏或报告无法运行的计算机。 然后IT部门可以放弃,如果他们已经采取任何步骤尝试修复它,如果问题是密切的,还有一个复选框。如果检查并更新了表单视图中的复选框,则应向原始用户发送自动电子邮件,并显示问题已解决的消息。除了电子邮件部分,我已经完成了所有工作,一切正常。 有人可以给我一些关于我应该怎么做的建议吗?有一个独特的数据源来处理更新声明。

你真诚的; 甲

这是我的代码:

<asp:AccessDataSource ID="accAfgehandeld" runat="server" 
    DataFile="~/App_data/dbMeldingen.mdb" 
    DeleteCommand="DELETE FROM [tblMeldingen] WHERE [MeldingID] = ?" 
    InsertCommand="INSERT INTO [tblMeldingen] ([MeldingID], [Afgehandeld], [Categorie]) VALUES (?, ?, ?)" 
    SelectCommand="SELECT [MeldingID], [Afgehandeld], [Categorie] FROM [tblMeldingen] WHERE ([MeldingID] = ?)" 
    UpdateCommand="UPDATE [tblMeldingen] SET [Afgehandeld] = true, [Categorie] = ? WHERE [MeldingID] = ?"
    OnUpdated="OnDSUpdatedHandler">
    <DeleteParameters>
        <asp:Parameter Name="MeldingID" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="MeldingID" Type="Int32" />
        <asp:Parameter Name="Afgehandeld" Type="Boolean" />
        <asp:Parameter Name="Categorie" Type="Int32" />
    </InsertParameters>
    <SelectParameters>
        <asp:QueryStringParameter Name="MeldingID" QueryStringField="id" Type="Int32" />
    </SelectParameters>
    <UpdateParameters>

        <asp:Parameter Name="Categorie" Type="Int32" />
        <asp:Parameter Name="MeldingID" Type="Int32" />
    </UpdateParameters>
</asp:AccessDataSource>

和我的脚本在同一页面中:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="meldingendetails.ascx.vb" Inherits="meldingendetails" %>

<script runat="server">
private void OnDSUpdatedHandler(Object sender, e.Updated) {

   if (e.AffectedRows > 0) 
    {
       MailMessage mailMessage = new MailMessage();
       SmtpClient smtpClient = new SmtpClient("smtp.your-isp.com");
       smtpClient.Send(mailMessage);  
   } 
}
</script>

Visual Studio使用我的脚本反复出错,即使是从void部分......

1 个答案:

答案 0 :(得分:0)

设置OnUpdated-handler

<asp:SqlDataSource
     ...
      UpdateCommand="..."
      OnUpdated="OnDSUpdatedHandler">
  </asp:SqlDataSource>

并使用它发送电子邮件

<script runat="server">
private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e) {

   if (e.AffectedRows > 0) {
       MailMessage mailMessage = new MailMessage();
       ...
       SmtpClient smtpClient = new SmtpClient("smtp.your-isp.com");
       smtpClient.Send(mailMessage);  
   } 

}
</script>