You can compose a query dynamically in your application by concatenating all of the fields that have values specified for them. For example "... WHERE Model = 'abc' AND Color = 'Blue' AND ...". Fields that don't have values just won't be included in the WHERE clause. If you use this method you need to be VERY careful that you check your input fields for SQL injection attacks.
A better way would be to create a stored procedure in the database that has parameters for all of the input fields. You can pass in null values for those fields that the user hasn't input a value for. However, you have to make sure your SP can properly handle parameters with null values and filter your result set accordingly.