SQLite доступ к коду не имеет таблиц? - PullRequest
2 голосов
/ 21 февраля 2011

Я создал базу данных SQLite через SQLiteManager. У меня есть таблица под названием Конверты и другие таблицы. Когда я получаю к нему доступ из кода (ниже), я получаю исключение, в котором говорится, что таблица, к которой я пытаюсь получить доступ, не существует. Я пробовал конверты и конверты ZVDB. Да, я дважды проверил написание имен таблиц.

var conn = new SqliteConnection("Data Source=ZVDB");
using ( var cmd = conn.CreateCommand()) {
    conn.Open();
    cmd.CommandType = CommandType.Text;

    cmd.CommandText = "insert into Envelopes (Name, Remainder, Budget) values (@1, @2, @3); select @@identity";
    cmd.Parameters.Add("@1", DbType.String).Value = env.Name;
    cmd.Parameters.Add("@2", DbType.Int32).Value = env.Remainder;
    cmd.Parameters.Add("@3", DbType.Int32).Value = env.Budget;

    env.ID = (int) cmd.ExecuteScalar();
}

У меня есть это в моем проекте MonoDevelop, установленное с правильным действием.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Это означает, что путь к базе данных неверен.

В SQLite, когда вы открываете несуществующую базу данных, по умолчанию она просто создает новую пустую. Нет ошибок.

Когда вы пытаетесь прочитать или записать таблицу, которая не существует, вы получите ошибку, которую вы описали.

В строке подключения вы указали просто ZVDB без пути. Попробуйте указать полный абсолютный путь.

1 голос
/ 21 февраля 2011

правильный ответ Самуила - если вы хотите получить доступ к базе данных, вам необходимо убедиться, что вы включили базу данных в свое решение, установите для параметра «действие сборки» значение «Содержимое» и установите «Копт».вывести каталог "в" Всегда копировать ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...