C# SQLite Database Connection
Tags: csharp, howto, sqlite, visualstudio
Published: 2022-11-27 00:47:45


Pada catatan kali ini akan kita bahas mengenai contoh penggunaan SQLite Database pada C#.

## Visual Studio Template

Template yang akan digunakan untuk mencoba SQLite adalah `Console App`. Cara membuat console app project pada Visual Studio dapat dilihat pada link berikut: <RouterLink to="/creating-new-console-app-project-visual-studio-2022">Creating New Console App Project in Visual Studio Code 2022</RouterLink>.

## Install `System.Data.SQLite`

Untuk dapat menggunakan SQLite pada Visual studio kita perlu menambahkan library dengan menggunakan NuGet Package Manager, dengan langkah-langkah seagai berikut:

1. Untuk langsung menambahkan library pada project yang tengah aktif, dapat dilakukan melalui menu `Project` › `Manage Nuget Packages...`
   ![Manage Nuget Packages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5iqa1zcch3ju8cefxrn.jpg)
2. Pada tab `Browse` cari package dengan kata kunci `system.data.sqlite` kemudian pilih sesuai gambar lalu install dan tunggu beberapa saat untuk proses instalasinya
   ![Browse Package](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xe2mab72lkkplva7adwx.jpg)
3. Setelah proses instalasi selesai, maka akan muncul dialog seperti gambar berikut, lalu tekan `OK`
   ![Preview Changes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d0cdnnvu5tgp3kla5fy7.jpg)
4. Setelah itu akan muncul juga dialog konfirmasi lisensi penggunaan package, lalu tekan `I Accept`
   ![License Acceptance](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wg64crm05mlphdgn56p2.jpg)
5. Untuk memastikan bahwa package sudah berhasil ditambahkan ke dalam project, dapat dilakukan pengecekan pada Solution Explorer, sebagai berikut:
   ![Solution Explorer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1p8e9azlytuvwiw6g0p.jpg)

## Test Connection

Untuk mencoba koneksi ke SQLite, dapat menggunakan code berikut:

### Example Code

Code berikut akan menampilkan versi dari SQLite.

{% gist https://gist.github.com/ahoNerd/2287f56e9ac14b5081a8c56fb633fa24 file=test.cs %}

### Output

![Output](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kg070t6qnvjft225dt33.jpg)

## Create Table and Add Data

Contoh pembuatan table dan penambahan data.

### Example Code

Code berikut akan membuat database dengan nama `fruits.db` dan membuat table `fruits` di dalamnya, lalu menambah sample data `Apple` dan `Orange`.

{% gist https://gist.github.com/ahoNerd/2287f56e9ac14b5081a8c56fb633fa24 file=write.cs %}

## Read Data

Contoh pembacaan data dari database.

### Example Code

Code berikut akan membaca database dengan nama `fruits.db` yang sudah dibuat sebelumnya.

{% gist https://gist.github.com/ahoNerd/2287f56e9ac14b5081a8c56fb633fa24 file=read.cs %}

### Output

![Output](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kpbmhm3cfvenwdygxt65.jpg)

## Database Location

Database kita definisikan pada `string cs = @"URI=file:fruits.db";`, sehingga akan tersimpan di dalam project pada folder berikut:

```
\bin\Debug\net6.0
```

### Custom Location

Untuk menyimpan database di tempat lain, cukup mengubah baris `string cs = @"URI=file:fruits.db";` menjadi misalnya `string cs = @"URI=file:D:\Data\test.db";`, sehingga database akan tersimpan di partisi `D` pada folder `Data`.

## Reference

[system.data.sqlite.org](https://system.data.sqlite.org/)