Om du skickar ett nollvärde till parametern får du det här felet även efter att du lagt till parametern, så försök kontrollera värdet och om det är null använd DBNull.Value
Detta kommer att fungera
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
Detta kommer att konvertera nollvärdena från objektlagret till DBNull-värden som är acceptabla för databasen.