NULL в SQLite из C#
Значение NULL в SQLite - отсутствие
значения, не пустая строка. У такой колонки
IsDBNull вернёт true.
После вставки NULL метод IsDBNull вернёт истину:
using Microsoft.Data.Sqlite;
using SqliteConnection db = new("Data Source=:memory:");
db.Open();
using (SqliteCommand c = db.CreateCommand())
{
c.CommandText = "CREATE TABLE terms (hint TEXT); INSERT INTO terms VALUES (NULL)";
c.ExecuteNonQuery();
}
using SqliteCommand q = db.CreateCommand();
q.CommandText = "SELECT hint FROM terms";
using SqliteDataReader r = q.ExecuteReader();
r.Read();
Console.WriteLine(r.IsDBNull(0));
Чтение такой колонки через GetString
бросит исключение, поэтому сначала вызывают
IsDBNull.
В таблице "profiles" колонка
"phone" может отсутствовать. Добавьте
человека без телефона и выведите, отсутствует
ли номер.