Hola, te contesto basándome en lo que he podido leer, no en la práctica, ya que yo las consultas SQL las lanzo de forma diferente (construyo la consulta como tal desde mi código, con todos sus parámetros ya metidos, y la lanzo ya construida), así que a lo mejor estoy diciendo alguna tontería, pero por probar nada se pierde.
Por lo que he podido leer, OLE DB .NET no permite el uso de parámetros con nombre, sino que se basa en la posición que ocupe cada parámetro a la hora de insertarse para saber a qué parámetro de la consulta corresponde. Para indicar dónde va un parámetro dentro de tu consulta se usa el carácter interrogación "
?". Por lo tanto el primer parámetro insertado, irá en la primera interrogación que se encuentre, y así con el resto.
Es decir, en tu ejemplo la cosa quedaría así:
sentencia = "SELECT * FROM Usuarios U WHERE U.idUsuario=?";
Y luego, añadirías el parámetro sin más, así:
command.Parameters.Add(user)
Prueba a ver si haciéndolo así te funciona. Insisto en que no lo he probado, por lo que no sé si será la solución a tu problema.
Saludos