0

このような vb.net コンソール アプリケーションからストアド プロシージャを呼び出すモジュールがあります。このストアド プロシージャには、多くの print ステートメントが含まれています。このコンソール アプリケーションを実行すると、コンソールにメッセージが表示されます。それらのメッセージを取得してメールで送信したい

Dim Con As New SqlConnection(connectionString)
Dim cmd As New SqlCommand("SaveReceiptsFromFile_GFF", Con)

Try
   Using Con
      Con.Open()

      cmd.ExecuteNonQuery()

   End Using
Catch ex As SqlException
   Console.WriteLine(ex.Message)

   sendmailwhenfail()
End Try
Con.Close()

メールを送信するための私のモジュールは次のようなものです:

Public Shared Sub sendmailwhenfail()
        Try
            Dim AnEmailMessage As New MailMessage
            AnEmailMessage.From = New MailAddress("tester@gmail.com")
            AnEmailMessage.To.Add("mymail@xxxxx.com")
            AnEmailMessage.Subject = "this is test subject"
            AnEmailMessage.Body = "this is test body"
            AnEmailMessage.Priority = MailPriority.High
            Dim SimpleSMTP As New SmtpClient("smtp.gmail.com")
            With SimpleSMTP
                .Port = 587
                .EnableSsl = True
                .Credentials = _
                New NetworkCredential("tester@gmail.com", "Tester123")
                .Send(AnEmailMessage)
            End With
            MsgBox("Email sent")
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Sub

失敗してもすべて正常に動作しています。私の質問は、これらのコンソール メッセージを取得してメール メッセージで送信する方法です。

4

1 に答える 1

0

同じ Exception ex.Message, ex.Source を取り、メソッド sendmailwhenfail() のパラメーターとして使用します。次に例を示します。

try
{
    // do your thing
}
catch (Exception ex)
{
    Console.Writeline(String.Format("{0} :: {1}", ex.Source, ex.Message));
    SendMail(ex.Source, ex.Message);
}

そのため、例外に含まれるエラー メッセージが何であれ、SendMail メソッドにも渡されます。

于 2013-04-03T18:50:22.010 に答える