0

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
Shmewnix
  • 1,553
  • 10
  • 32
  • 66
  • an empty table isn't null: it represents the empty set ∅ -- a very different concept than nullity. See http://mathworld.wolfram.com/EmptySet.html for details. – Nicholas Carey Jul 31 '12 at 16:49

1 Answers1

0

I accomplished this by using the "If NOT" "Then" statement. This allows you to continue if the tableadapter is "empty"

Shmewnix
  • 1,553
  • 10
  • 32
  • 66