I assume you're ok using a QR code in place of a normal bar code, and 2 you aren't shipping your entire database to the phone. I also assume you're doing this to check people into an event or something.
The solution given those criteria is pretty simple.
1. Generate a really long random password (say 160 chars)
2. Split the password into 2 equal parts (80 chars each)
3. Using bcrypt or some other means and this password create a 1 way hash.
4. Put the first half of the password and the 1 way hash on the device you take to check people into the event.
5. Generate a QR code with the other half and have people use that as their ticket.
6. When matching, combine the 2 halves (the one on your checkin device, and the one in the QR code), regen the hash and see if it matches.