Search code examples
sqlvb.netxelement

How to assign xelement as empty


I have a VB.net program that runs a query, fills a dataset and puts the information in a table. I then email this table. The program works, however I'd like to have the table fill different information if the dataset doesn't return any results. My current code is:

Try
    Me.fTimeCardTableAdapter.Fill(Me.timecard.fTimeCard, "1/9/14", "1/10/14")
Catch ex As Exception
End Try

Dim Time1 = _
    <html>
      <body>
        <table border="1">
          <tr><th>First Name</th><th>Last Name</th><th>Total Hours</th><th>Break Time</th></tr>
            <%= From Time1break In Me.timecard.fTimeCard.AsEnumerable _
                    Select <tr><td><%= Time1break.sFirstName %></td>
                               <td><%= time1break.sLastName %>
                               </td><td><%= time1.TotalHours %></td>
                               <td><%= time1break.BreakTime %></td></tr> %>
        </table>
      </body>
    </html>

If the dataset is empty I want it to fill the table this way:

<html>
  <body>
    <table border="1">
      <tr><th>No Exceptions found</th></tr>
    </table>
  </body>
</html>

I did try this:

Try
    Me.fTimeCardTableAdapter.Fill(Me.timecard.fTimeCard, "1/9/14", "1/10/14")
Catch ex As Exception
End Try

If (Me.timecard.fTimeCard.Count = 0) Then GoTo Line1 Else GoTo Line2

Line1:  Dim Time1 = _
            <html>
              <body>
                <table border="0">
                  <tr><th>No Break Exceptions For Yesterday</th></tr>
                </table>
              </body>
            </html>

Line2:
        Time1 = _
          <html>
            <body>
              <table border="1">
                <tr><th>First Name</th><th>Last Name</th><th>Total Hours</th><th>Break Time</th></tr>
                <%= From time1break In Me.timecard.fTimeCard.AsEnumerable _
                        Select <tr><td><%= Time1break.sFirstName %></td>
                                   <td><%= Time1break.sLastName %>
                                   </td><td><%= time1break.TotalHours %></td>
                                   <td><%= time1break.BreakTime %></td></tr> %>
              </table>
            </body>
          </html>

However, it still shows me "Line2" when the dataset is empty.


Solution

  • Try it this way:

     Dim Time1
     If Not Me.timecard Is Nothing AndAlso (Me.timecard.Table(fTimeCard).Rows.Count <> 0) Then 
        Time1 = _
          <html>
            <body>
              <table border="1">
                <tr><th>First Name</th><th>Last Name</th><th>Total Hours</th><th>Break Time</th></tr>
                <%= From time1break In Me.timecard.fTimeCard.AsEnumerable _
                        Select <tr><td><%= Time1break.sFirstName %></td>
                                   <td><%= Time1break.sLastName %>
                                   </td><td><%= time1break.TotalHours %></td>
                                   <td><%= time1break.BreakTime %></td></tr> %>
              </table>
            </body>
          </html>
     Else
         Time1 = _
            <html>
              <body>
                <table border="0">
                  <tr><th>No Break Exceptions For Yesterday</th></tr>
                </table>
              </body>
            </html>
     End If