Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQLite yalnızca dört temel veri türüne sahiptir: INTEGER, REAL, TEXTve BLOB. Veritabanı değerlerini olarak object döndüren API'ler bu dört türden yalnızca birini döndürür. Ek .NET türleri Microsoft.Data.Sqlite tarafından desteklenir, ancak değerler sonuçta bu türlerle dört temel türden biri arasında zorunlu kalır.
| .NET | SQLite | Açıklamalar |
|---|---|---|
| Boolean | INTEGER |
0 veya 1 |
| Byte | INTEGER | |
| Byte[] | BLOB | |
| Char | TEXT | UTF-8 |
| DateOnly | TEXT | yyyy-MM-dd |
| DateTime | TEXT | yyyy-MM-dd HH:mm:ss.FFFFFFF |
| DateTimeOffset | TEXT | yyyy-MM-dd HH:mm:ss.FFFFFFFzzz |
| Decimal | TEXT |
0.0########################### biçim.
REAL kaybeden olurdu. |
| Double | REAL | |
| Guid | TEXT | 00000000-0000-0000-0000-000000000000 |
| Int16 | INTEGER | |
| Int32 | INTEGER | |
| Int64 | INTEGER | |
| SByte | INTEGER | |
| Single | REAL | |
| String | TEXT | UTF-8 |
| TimeOnly | TEXT | SS:mm:ss.fffffff |
| TimeSpan | TEXT | d.hh:mm:ss.fffffff |
| UInt16 | INTEGER | |
| UInt32 | INTEGER | |
| UInt64 | INTEGER | Büyük değerler taşması |
Alternatif türler
Bazı .NET türleri alternatif SQLite türlerinden okunabilir. Parametreler bu alternatif türleri kullanacak şekilde de yapılandırılabilir. Daha fazla bilgi için bkz . Parametreler.
| .NET | SQLite | Açıklamalar |
|---|---|---|
| Char | INTEGER | UTF-16 |
| DateOnly | REAL | Jülyen gün değeri |
| DateTime | REAL | Jülyen gün değeri |
| DateTimeOffset | REAL | Jülyen gün değeri |
| Guid | BLOB | |
| TimeOnly | REAL | Gün olarak |
| TimeSpan | REAL | Gün olarak |
Örneğin, aşağıdaki sorgu sonuç kümesindeki bir REAL sütundan TimeSpan değerini okur.
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}.");
}
}
Sütun türleri
SQLite, bir değerin türünün depolandığı sütunla değil değerle ilişkilendirildiği dinamik bir tür sistemi kullanır. İstediğiniz sütun türü adını kullanabilirsiniz. Microsoft.Data.Sqlite bu adlara ek semantik uygulamaz.
Sütun türü adı, tür bağımlılığı üzerinde bir etki yapar. Sık karşılaşılan bir sorun, STRING sütun türü kullanıldığında değerleri INTEGER veya REALdeğerine dönüştürmeyi deneyerek beklenmeyen sonuçlara yol açabilmesidir. Yalnızca dört temel SQLite türü adı kullanmanızı öneririz: INTEGER, REAL, TEXTve BLOB.
SQLite uzunluk, duyarlık ve ölçek gibi tür modellerini belirtmenize olanak tanır, ancak veritabanı altyapısı tarafından uygulanmaz. Uygulamanız bunları zorunlu tutmaktan sorumludur.