SQLiteDBAccess 1.0.6

dotnet add package SQLiteDBAccess --version 1.0.6                
NuGet\Install-Package SQLiteDBAccess -Version 1.0.6                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SQLiteDBAccess" Version="1.0.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SQLiteDBAccess --version 1.0.6                
#r "nuget: SQLiteDBAccess, 1.0.6"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SQLiteDBAccess as a Cake Addin
#addin nuget:?package=SQLiteDBAccess&version=1.0.6

// Install SQLiteDBAccess as a Cake Tool
#tool nuget:?package=SQLiteDBAccess&version=1.0.6                

SQLiteDBAccess

This is a lightweight sqlite access library. It allows you to easily create and access multiple different sqlite db files.

simply add/create a database via SQLiteDBAccess.Instance() This will check if there already is an instance for that file and ether create the file and return a new instance or get the already existing instance.

You can also pass a bool as 3rd attribute (default true) it determines if the file should be managed automatically or manually. If set to true the file will be opened and closed on every call. If that is to expensive for you you can pass false and open/close the file manually via OpenDBFile() and CloseDBFile().

Attention

If a method in SQLiteDBAccess is used that returns an SQLDataReader the connection will not be closed even if file management is enabled. Meaning you will have to manually free the file with CloseDBFile(yourReader). yourReader being the SQLiteDataReader that you have used. This is necessary because the connection needs to be active to use the reader.

You can also run any sqlite command via CustomCommand or CustomCommandWithReturn if you want to return value(s).

examples:

Create/Add Database

var dbAccess = SQLiteDBAccess.SQLiteDBAccess.Instance("mydb", "/home/teddy"); // on windows path would be "C:/Users/teddy"

Note: Depending on if your file system is case sensitive creating a Database with the name mydb and Mydb will ether be the same (on non-case sensitive) or different (on case sensitive) instances and files.

Create Table

dbAccess.CreateTable("MyTable", "Id INTEGER PRIMARY KEY, MyText TEXT, MyNumber INTEGER");

Insert Into Table

var myNewText = "'hello world'";
var myNewNumber = 1337;
dbAccess.Insert("MyTable", "MyText, MyNumber", $"{myNewText}, {myNewNumber}");

Note: You will need to add '' around items which contain spaces e.g. 'hello world'.

Read Single Row From Table By Attribute

var reader = dbAccess.GetByAttribute("MyTable", "Id", "1");
if (reader.Read())
{
    Console.WriteLine($"{reader.GetName(0)}: {reader.GetInt64(0)}\n{reader.GetName(1)}: {reader.GetString(1)}\n{reader.GetName(2)}: {reader.GetInt64(2)}");
} 
dbAccess.CloseDBFile(reader);

Note: GetByAttribute() can return multiple rows. In this example a primary key is used and result.Read() is only executed once. Any one of those factors will result in a single row being returned.

Read All Rows From Table

var reader = dbAccess.GetAll("MyTable");
while (reader.Read())
{
    Console.WriteLine($"{reader.GetName(0)}: {reader.GetInt64(0)}\n{reader.GetName(1)}: {reader.GetString(1)}\n{reader.GetName(2)}: {reader.GetInt64(2)}");
} 
dbAccess.CloseDBFile(reader);

Note:

  • This Nuget Package is geared more towards smaller projects and will result in a multitude of issues if used in a bigger project.
  • This Nuget Package should not and was not created to be used with unsanitized user input.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.6 320 1/27/2023
1.0.5 289 1/15/2023
1.0.4 324 1/15/2023
1.0.3 298 1/15/2023
1.0.2 288 1/15/2023
1.0.1 298 1/15/2023
1.0.0 305 1/15/2023

refactoring and typo fixes