Poner un Convert.ToDateTime( DTP1.Value.ToString() es redundante y conflictivo.
Redundante porque
DTP1.Value (siendo DTP un DateTimePicker) por definición del objeto devuelve un DateTime.
Conflictivo porque tomarlo directamente de un string para hacer un
Convert.ToDateTime() te ocasionará problemas con la regionalización del string...
Si es cierto que debería aclarar si usa VB o VB.Net.
En cualquier caso, asumiendo VB.Net, la cosa debería funcionar así:
Código:
Dim miParametro As New SqlParameter
Dim MiFecha As DateTime = DTP.Value
miParametro.ParameterName = "@Fecha"
miParametro.SqlDbType = SqlDbType.DateTime
miParametro.Value = (MiFecha)
miComando.Parameters.Add(miParametro)