SQL logic error no such table: Items - ошибка при работе с System.Data.SQLite

Рейтинг: 0Ответов: 1Опубликовано: 03.05.2023

при выполнении программы возникает ошибка "SQL logic error no such table: Items" Код программы:

using System;
using System.Data.SQLite;

namespace HelloApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string sqlExpression = "SELECT * FROM Items";
            using (var connection = new SQLiteConnection("Data Source=gds.db"))
            {
                connection.Open();

                SQLiteCommand command = new SQLiteCommand(sqlExpression, connection);
                using (SQLiteDataReader reader = command.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            var id = reader.GetValue(0);
                            var name = reader.GetValue(1);
                            var cost = reader.GetValue(2);

                            Console.WriteLine($"{id} \t {name} \t {cost}");
                        }
                    }
                }
            }
            Console.Read();
        }
    }
}

бд gds.db находится в файле с проектом, таблица Items создана,

Ответы

▲ 0Принят

бд gds.db находится в файле с проектом, таблица Items создана

Файл базы данных будет смотреть в папке с исходниками, то-есть в папке bin. Есть два варианта решения этой проблемы:

  1. Поменять путь к базе данных на абсолютный: using (var connection = new SQLiteConnection($"Data Source={AbsolutePathToDBFile}")), где AbsolutePathToDBFile - это строка в которой лежит абсолютный путь к файлу БД.
  2. Использовать относительный путь из папки bin, скорее всего вот так: using (var connection = new SQLiteConnection($"Data Source=./../../../gds.db"))