NOTE: This project was a solution long before Windows Phone have built-in Database Support. You should be using Local Database support provided by Windows Phone itself!

Project Description
C# Sqlite Port for Windows phone 7 and possibly Silverlight 3, 4. The core engine was slightly modified to be used with IsolatedStorage and SqliteClient were ported by using missing codes from Mono project in order to maximize usability and portability from
desktop.

Conversion from normal file IO to IsolatedStorage (NOTE: it will not work with files added as resource/content in the application – you need to copy it to
IsolatedStorage first)

Fixed Issues of core engine which does not close the file properly and prevent deletion of journal

General Usage pattern follows normal ADO.NET classes, however – SqliteClient did not inheirted or implements any ADO.NET interfaces or classes.

Some Recommendations:

Queries are converted to ASCII (ISO-8859-1) which means all international characters will not work.
Always use Parameter to store data.

Phones use Flash based storage which works well for large block access – always use transaction. It seems like internally, SQLite would create a journal file every time there is a change to database,
using transaction will only create one journal file per transaction. Without transaction, journal file gets created every time.

Closing the connection will also close the database and disposal of associated stream, there is no connection pooling.

Further Improvements:

Storing Journal using MemoryStream instead of IsolatedStorage file stream. Have to verify whether journal file were used to recover anything.