I have a program that auto launches with Windows via scheduler. What it does is runs a query and then emails the results of the query. This all works. We have 10 locations so I will be editing this so it sends 5 different emails... The problem I'm running into is How can I check to see if multiple tableadapters have a null value. You will see I have it check "Paid_Out_TB" to see if it has 0 rows... if there are 0 rows the program closes. What I'd like to do is check to see if it has 0 rows. If it does, report the table data in email, then check the next tableadapter, does that include rows? if so report that as well... leaving out ANY table without data... The problem is... If one does not have data, I need to tell it to do something... any suggestions?
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