スケジューラを介して Windows で自動起動するプログラムがあります。クエリを実行し、クエリの結果を電子メールで送信します。これはすべて機能します。10 か所あるので、これを編集して 5 つの異なるメールを送信します... 私が直面している問題は、複数の tableadapters に null 値があるかどうかを確認するにはどうすればよいかということです。「Paid_Out_TB」をチェックして、行が0かどうかを確認することがわかります...行が0の場合、プログラムは閉じます。私がやりたいのは、行が0かどうかを確認することです。含まれている場合は、テーブル データを電子メールで報告し、次の tableadapter を確認します。これには行が含まれていますか? もしそうなら、それも報告してください...データのないテーブルを除外します...問題は...データがない場合、何かをするように指示する必要があります...何か提案はありますか?
Imports System.Net.Mail
Imports System.Net.Mail
Imports System.Linq
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'DataSet.Paid_Out_Tb' table. You can move, or remove it, as needed.
Try
Dim SmtpServer As New SmtpClient()
Dim mail As New MailMessage()
Me.Paid_Out_TbTableAdapter.Fill(Me.DataSet.Paid_Out_Tb)
Me.DataTable1TableAdapter.Fill(Me.DataSet.DataTable1)
Dim payouts = _
<html>
<body>
<table border="1">
<tr><th>Store #</th><th>Date</th><th>Amount</th><th>User</th><th>Comment</th></tr>
<%= From paidOut In Me.DataSet.Paid_Out_Tb.AsEnumerable _
Select <tr><td><%= paidOut.Store_Id %></td>
<td><%= Convert.ToDateTime(paidOut.Paid_Out_Datetime).ToString("M/d/yy") %>
</td><td><%= "$" & paidOut.Paid_Out_Amount.ToString("0.00") %></td>
<td><%= paidOut.Update_UserName %></td>
<td><%= paidOut.Paid_Out_Comment %></td></tr> %>
</table>
</body>
</html>
Dim Payouts453 = _
<html>
<body>
<table border="1">
<tr><th>Store #</th><th>Date</th><th>Amount</th><th>User</th><th>Comment</th></tr>
<%= From paidOut In Me.DataSet.DataTable1.AsEnumerable _
Select <tr><td><%= paidOut.Store_Id %></td>
<td><%= Convert.ToDateTime(paidOut.Paid_Out_Datetime).ToString("M/d/yy") %>
</td><td><%= "$" & paidOut.Paid_Out_Amount.ToString("0.00") %></td>
<td><%= paidOut.Update_UserName %></td>
<td><%= paidOut.Paid_Out_Comment %></td></tr> %>
</table>
</body>
</html>
If (Me.DataSet.Paid_Out_Tb.Count = 0) Then 'This cheks to see if the dataset is Null. We do not want to email if the set is Null
Me.Close()
Else
SmtpServer.Credentials = New _
Net.NetworkCredential("****", "****") 'Assign the network credentials
SmtpServer.Port = 25 'Assign the SMTP Port
SmtpServer.Host = "10.0.*.**" 'Assign the Server IP
mail = New MailMessage() 'Starts a mail message
mail.From = New MailAddress("*@**.com") 'Sets the "FROM" address
mail.To.Add("**@**.com") 'Sets the "To" address
'mail.CC.Add("**@**.com") 'set this if you would like to CC
mail.Subject = "Paid Out Report for 1929"
mail.IsBodyHtml = True
mail.Body = payouts.ToString() & Payouts453.ToString() 'this is to add another chart You would use a seperate dataset obviously
SmtpServer.Send(mail)
'MsgBox("mail send")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Me.Close() 'Closes the program when it's finished.
End Sub