Bueno mi problema es el siguiente no se pueden ayudarme .....estoy trabajando con la BD Northwind insertando datos atravez de un formulario ..pero me sale un error

Aqui dejo mi codigo insertar :
Public Shared Sub Insertar(ByVal nombre As String, _
ByVal SupplierId As Int32, _
ByVal CategoryId As Int32, _
ByVal UnitPrice As Decimal, _
ByVal UnitsInStock As Int64, _
ByVal discontinued As Boolean)
'Dim cnx As New SqlConnection
'cnx.ConnectionString = connectionString
Dim comando As New SqlCommand("sp_inserta_products", connPublico)
comando.CommandType = CommandType.StoredProcedure
'Ahora definimos los parámetros
comando.Parameters.Add(New SqlParameter("@ProductName", SqlDbType.VarChar, 40))
comando.Parameters("@ProductName").Direction = ParameterDirection.Input
comando.Parameters("@ProductName").Value = nombre
comando.Parameters.Add(New SqlParameter("@SupplierId", SqlDbType.Int))
comando.Parameters("@SupplierId").Direction = ParameterDirection.Input
comando.Parameters("@SupplierId").Value = SupplierId
comando.Parameters.Add(New SqlParameter("@CategoryId", SqlDbType.Int))
comando.Parameters("@CategoryId").Direction = ParameterDirection.Input
comando.Parameters("@CategoryId").Value = CategoryId
comando.Parameters.Add(New SqlParameter("@UnitPrice", SqlDbType.Decimal))
comando.Parameters("@UnitPrice").Direction = ParameterDirection.Input
comando.Parameters("@UnitPrice").Value = UnitPrice
comando.Parameters.Add(New SqlParameter("@UnitsInStock", SqlDbType.SmallInt))
comando.Parameters("@UnitsInStock").Direction = ParameterDirection.Input
comando.Parameters("@UnitsInStock").Value = UnitsInStock
comando.Parameters.Add(New SqlParameter("@discontinued", SqlDbType.Bit))
comando.Parameters("@discontinued").Direction = ParameterDirection.Input
comando.Parameters("@discontinued").Value = discontinued
connPublico.Open()
comando.ExecuteNonQuery()
connPublico.Close()
'Liberamos recursos
comando.Dispose()
connPublico.Dispose()
End Sub
espero que me ayuden por favor ....gracias...