SQLite Forum

Pre-release Versions of System.Data.SQLite packages?
Re using {System,Microsoft}.Data.SQLite versus Microsoft.Data.Odbc:

That is like asking about using a power drill versus an extension cord.

Microsoft.Data.Odbc is an adapter layer over ODBC which itself is an adapter to a great many database engines, including SQLite.

System.Data.SQLite (or Microsoft.Data.SQLite) is a .Net adapter which implements the interfaces defined for System.Data so that they access the SQLite library.

SQLite has a number of capabilities not defined for System.Data, which you can see by examining the documentation.  The additional functionality is reached via interfaces that are named differently and do not inherit from (or extend) ones found in System.Data .  There are many such, so I decline to list them here.

On your 1st specific question, "Why not use ...Odbc?" I don't know. Maybe it will do what you need, and there is no reason not to use it. If you just need to do CRUD, for a simple application, it may be suitable for your purposes.

You might also wonder, "What can be done via ...Odbc and not with ...Data.SQLite? Operation between networked machines would be one. High concurrency would be another.