Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpDbNf 139 of 224 menu
◀ ▶

Пустое значение поля SQL в Dart

Значение NULL в SQL означает отсутствие данных, а не пустую строку. Колонку без NOT NULL можно оставить незаполненной при INSERT.

Для SQL NULL обращение к полю в Dart дает null. Отдельно проверяют значение перед выводом:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('nulls.db'); db.execute(''' CREATE TABLE IF NOT EXISTS memos ( id INTEGER PRIMARY KEY, title TEXT NOT NULL, remark TEXT ) '''); db.execute("INSERT INTO memos (title) VALUES ('idea')"); var rows = db.select('SELECT remark FROM memos WHERE id = 1'); if (rows.isNotEmpty) { var text = rows.first['remark']; if (text == null) { print('missing'); } else { print(text); } } db.dispose();

Тот же столбец можно прочитать через оператор ??, если дальше нужна строка по умолчанию:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('nulls.db'); db.execute( 'INSERT INTO memos (title, remark) VALUES (?, ?)', ['done', 'shipped'], ); var rows = db.select( 'SELECT remark FROM memos WHERE title = ?', ['idea'], ); if (rows.isNotEmpty) { var remark = rows.first['remark']; print(remark ?? 'none'); } db.dispose();

Создайте таблицу items в stock.db с обязательным sku и необязательным comment, добавьте строку без комментария и выведите "empty", если поле пустое.

Добавьте строку с комментарием "fragile" и выведите текст для обеих записей через оператор ??.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить