Ако предадете нулева стойност на параметъра, ще получите тази грешка дори след като добавите параметрите, така че опитайте да проверите стойността и ако е нула, тогава използвайте DBNull.Value
Това ще работи
cmd.Parameters.Add("@Department", SqlDbType.VarChar)
If (TextBox2.Text = Nothing) Then
cmd.Parameters("@Department").Value = DBNull.Value
Else
cmd.Parameters("@Department").Value = TextBox2.Text
End If
Това ще преобразува нулевите стойности от обектния слой в DBNull стойности, които са приемливи за базата данни.