Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
SQLite hanya memiliki empat jenis data primitif: INTEGER, REAL, TEXT, dan BLOB. API yang mengembalikan nilai database sebagai object
hanya akan mengembalikan salah satu dari empat jenis ini. Jenis .NET tambahan didukung oleh Microsoft.Data.Sqlite, tetapi nilai pada akhirnya dikoerasi antara jenis ini dan salah satu dari empat jenis primitif.
.JARING | SQLite | Komentar |
---|---|---|
Boolean (tipe data yang hanya memiliki dua nilai: true atau false) | Bilangan Bulat |
0 atau 1 |
Bita | Bilangan Bulat | |
Byte[] | GUMPALAN | |
Karakter | TEKS | UTF-8 |
TanggalSaja | TEKS | yyyy-MM-dd |
Tanggal dan Waktu | TEKS | yyyy-MM-dd HH:mm:ss. FFFFFFF |
Pengaturan Waktu & Tanggal | TEKS | yyyy-MM-dd HH:mm:ss. FFFFFFFzzz |
Desimal | TEKS |
0.0########################### format. REAL akan rugi. |
Dobel | Nyata | |
Panduan | TEKS | 00000000-0000-0000-0000-000000000000 |
Int16 | Bilangan Bulat | |
Int32 | Bilangan Bulat | |
Int64 | Bilangan Bulat | |
SByte | Bilangan Bulat | |
Tunggal | Nyata | |
string | TEKS | UTF-8 |
TimeOnly | TEKS | HH:mm:ss.fffffff |
Rentang Waktu | TEKS | d.hh:mm:ss.fffffff |
UInt16 | Bilangan Bulat | |
UInt32 | Bilangan Bulat | |
UInt64 | Bilangan Bulat | Nilai besar meluap |
Jenis alternatif
Beberapa jenis .NET dapat dibaca dari jenis SQLite alternatif. Parameter juga dapat dikonfigurasi untuk menggunakan jenis alternatif ini. Untuk informasi selengkapnya, lihat Parameter.
.JARING | SQLite | Komentar |
---|---|---|
Karakter | Bilangan Bulat | UTF-16 |
TanggalSaja | Nyata | Nilai Hari Julian |
Tanggal dan Waktu | Nyata | Nilai Hari Julian |
Pengaturan Waktu & Tanggal | Nyata | Nilai Hari Julian |
Panduan | GUMPALAN | |
TimeOnly | Nyata | Dalam hari |
Rentang Waktu | Nyata | Dalam hari |
Misalnya, kueri berikut membaca nilai TimeSpan dari kolom REAL dalam tataan hasil.
command.CommandText =
@"
SELECT name, julianday(finished) - julianday(started) AS length
FROM task
WHERE finished IS NOT NULL
";
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var name = reader.GetString(0);
var length = reader.GetTimeSpan(1);
Console.WriteLine($"'{name}' took {length}.");
}
}
Jenis kolom
SQLite menggunakan sistem jenis dinamis di mana jenis nilai dikaitkan dengan nilai itu sendiri dan bukan kolom tempat nilai disimpan. Anda bebas menggunakan nama jenis kolom apa pun yang Anda inginkan. Microsoft.Data.Sqlite tidak akan menerapkan semantik tambahan apa pun ke nama-nama ini.
Nama jenis kolom memang berdampak pada afinitas jenis. Salah satu gotcha umum adalah bahwa menggunakan jenis kolom STRING akan mencoba mengonversi nilai ke INTEGER atau REAL, yang dapat menyebabkan hasil yang tidak terduga. Sebaiknya gunakan empat nama jenis SQLite primitif: INTEGER, REAL, TEXT, dan BLOB.
SQLite memungkinkan Anda menentukan faset jenis seperti panjang, presisi, dan skala, tetapi tidak diberlakukan oleh mesin database. Aplikasi Anda bertanggung jawab untuk memberlakukan ini.