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

Пустой результат выборки в Dart

Не каждый SELECT возвращает много строк. Иногда нужна одна запись или проверка, что совпадений нет. Результат все равно перебирают в цикле или смотрят свойство isEmpty.

Если выборка нашла строку с уникальным ключом, достаточно взять первый элемент или один проход цикла:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('single_hit.db'); db.execute(''' CREATE TABLE IF NOT EXISTS tokens ( id INTEGER PRIMARY KEY, secret TEXT NOT NULL ) '''); db.execute("INSERT INTO tokens (secret) VALUES ('x-ray')"); var rows = db.select( 'SELECT secret FROM tokens WHERE id = ?', [1], ); if (rows.isNotEmpty) { print(rows.first['secret']); } db.dispose();

Когда условие никому не подошло, набор пуст. Это нормальный результат, а не ошибка протокола:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('single_hit.db'); var rows = db.select( 'SELECT secret FROM tokens WHERE id = ?', [99], ); if (rows.isEmpty) { print('empty'); } db.dispose();

Создайте таблицу passes в gate.db, вставьте пропуск "vip-1" и выведите его, если выборка по id 1 нашла строку.

Запросите id 100 и выведите "none", когда строка не найдена.

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