# SqliteHelper **Repository Path**: orangego/SqliteHelper ## Basic Information - **Project Name**: SqliteHelper - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![alt tag](https://raw.githubusercontent.com/jchristn/SqliteHelper/master/assets/icon.ico) # SqliteHelper [![NuGet Version](https://img.shields.io/nuget/v/SqliteHelper.svg?style=flat)](https://www.nuget.org/packages/SqliteHelper/) [![NuGet](https://img.shields.io/nuget/dt/SqliteHelper.svg)](https://www.nuget.org/packages/SqliteHelper) Simple database wrapper for Sqlite written in C#. ## Description SqliteHelper is a simple database wrapper for Sqlite databases written in C#. Core features: - dynamic query building using expression objects - support for nested queries within expressions - support for SELECT, INSERT, UPDATE, and DELETE, or raw queries - built-in sanitization ## Important For .NET Framework, you may need to add the ```System.Data.SQLite.Core``` NuGet package, clean, and then re-build. This should place ```x86``` and ```x64``` folders in your build output. This is particularly helpful if you are experiencing the exception ```System.DllNotFoundException: Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found.``` ## Help and Support Please contact me for any issues or enhancement requests! I'm at joel dot christner at gmail dot com. ## New in v1.2.0 - Migrate to Microsoft.Data.Sqlite ## A Note on Sanitization Use of parameterized queries vs building queries dynamically is a sensitive subject. Proponents of parameterized queries have data on their side - that parameterization does the right thing to prevent SQL injection and other issues. *I do not disagree with them*. However, it is worth noting that with proper care, you CAN build systems that allow you to dynamically build queries, and you SHOULD do so as long as you build in the appropriate safeguards. If you find an injection attack that will defeat the sanitization layer built into this project, please let me know! ## Simple Example Refer to projects SampleApp, TestNetFramework, and TestNetCore for examples. ## Select with Pagination Use indexStart, maxResults, and orderByClause to retrieve paginated results. The query will retrieve maxResults records starting at row number indexStart using an ordering based on orderByClause. See the example in the SampleApp project. ## Version History Please refer to CHANGELOG.md.