Я сильно подозреваю, что это будет виновником:
Dim lab1 As Label = DirectCast(myRow.FindControl("Label1"), Label)
Dim lab4 As Label = DirectCast(myRow.FindControl("Label4"), Label)
FindControl
возвращает ноль / ничего, если не удается найти элемент управления с этим идентификатором. Я предполагаю, что, поскольку у вас есть потенциально несколько строк, идентификаторы элементов управления в каждой строке автоматически генерируются с дополнительной информацией. Я предлагаю вам взглянуть на HTML-код на странице и посмотреть, что генерируется ... возможно, вы захотите найти лучший способ найти отдельный элемент управления в строке.
Как уже упоминалось в комментариях, вам следует параметризовать свои операторы SQL, чтобы избежать атак внедрения SQL.