Hola walox, el problema en esa consulta es que '% + ?nombre + %'lo toma como un texto entero, no se si me entendes, no toma el valor del parametro, al estar todo comprendido dentro del '' es el texto entero.
Para mySql el @ sirve para especificar que la entrada es un parametro, no con ?.
La respuesta de Leandro me sirvió, usando el CONCAT(...)
Dejo el ejemplo por si a alguien le sirve, salu2
PublicSharedFunction obtenerClientesPorNombre(ByVal xnombre AsString) As List(Of Cliente)Dim clientes As List(Of Cliente) = NothingDim cliente As Cliente = NothingDim sql AsString = String.Empty sql = "SELECT id, "& _"nombre "& _"FROM Clientes "& _"WHERE (nombre LIKE CONCAT('%', @nombre, '%'))" clientes = New List(Of Cliente)Using connection AsNew MySqlConnection(ConfigurationManager.ConnectionStrings("mySql").ToString())Try connection.Open()Using command As MySqlCommand = connection.CreateCommand() command.CommandType = CommandType.Text command.CommandText = sql command.Parameters.AddWithValue("nombre", xnombre)Using reader As MySqlDataReader = command.ExecuteReader()While reader.Read cliente = ClienteDAL.load(reader) clientes.Add(cliente)EndWhileEndUsingEndUsingCatch ex As ExceptionThrow exEndTryEndUsingReturn clientesEndFunction
Leo Lequini