sqlite3.dll и system.data.sqlite.dll - PullRequest
7 голосов
/ 07 мая 2009

Здравствуйте, люди, я изо всех сил пытался использовать sqlite в своем приложении на C # 2.0 и наконец решил избавиться от предположений и задать действительно простые вопросы.

Когда я создал базу данных, скажем, iagency с пользователями таблиц, из внешних инструментов, таких как плагин Firefox и другого инструмента sqladmin, я не могу запросить ее у sqlicommand внутри vs2005, она отображает System.Data.SQLite.SQLiteException:Sqlite Error no such table users, будьте уверены, я ссылался на system.data.sqlite установлен с SQLite-1.0.61.0-setup

Когда я делаю обратное, например, создаю базу данных и таблицу из проводника VS-сервера и инструментов графического интерфейса базы данных VS, это не может быть запрошено ни одним, но может быть просмотрено другими инструментами, но таблицы, созданные с помощью запроса VS с использованием stringbuilder, например, create таблица бла бла. его можно отобразить в сетке данных, но ни один из инструментов не сможет увидеть и отобразить эту таблицу.

ЧТО МНЕ НУЖНО, ЧТОБЫ ДЛЯ ТОГО ЧТОБЫ УСТАНОВИТЬ РАБОТУ SQLITE В МОЕМ ПРИЛОЖЕНИИ?

Я попытался добавить sqlite3.dll файла sqlitedll-3_6_14.zip, загруженного с сайта sqlite в разделе предварительно скомпилированных двоичных файлов для окон, в качестве ссылки на мое приложение, но это не удалось с make sure it's accessible an it's a valid assembly or com component.

Ответы [ 5 ]

11 голосов
/ 13 июня 2009

Я скачал это SQLite-1.0.61.0-setup.exe Запустил установку, затем я написал это для доступа к избранному файлообменнику Firefox sqlite db.

using System.Data.SQLite;  // Dont forget to add this to your project references
                           // If the installation worked you should find it under
                           // the .Net tab of the "Add Reference"-dialog

namespace sqlite_test
{
    class Program
    {
        static void Main(string[] args)
        {
            var path_to_db = @"C:\places.sqlite"; // copied here to avoid long path
            SQLiteConnection sqlite_connection = new SQLiteConnection("Data Source=" + path_to_db + ";Version=3;New=True;Compress=True;");

            SQLiteCommand sqlite_command = sqlite_connection.CreateCommand();

            sqlite_connection.Open();

            sqlite_command.CommandText = "select * from moz_places";

            SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader();

            while (sqlite_datareader.Read())
            {
                // Prints out the url field from the table:
                System.Console.WriteLine(sqlite_datareader["url"]);
            }
        }
    }
}
3 голосов
/ 07 мая 2009

Попробуйте открыть базу данных в командной строке инструмента SQLite (из SQLite.org ) и проверьте схему.

Вы можете проверить схему следующим образом:

.schema

Это выгрузит весь SQL, необходимый для создания таблиц в базе данных. Убедитесь, что таблица там с именем, которое, как вы предполагаете, должно быть.

Вам не нужен файл .dll из SQLite.org, все, что вам нужно, это сборки из System.Data.SQLite .

2 голосов
/ 22 июля 2009

Для меня - эта ссылка очень помогла при запуске.

Было сложнее получить дозвуковую работу, сделать базу данных доступной через веб-приложение -
но это другая история.

0 голосов
/ 30 июня 2014

Я также попытался добавить местоположение к Переменная среды пути , но безуспешно.

Наконец, я скопировал System.Data.SQLite.dll и System.Data.SQLite.lib в папку bin веб-приложения, где расположены другие сборки, и приложение работало.

0 голосов
/ 07 мая 2009

Вы можете попробовать добавить местоположение сборки и базу данных в переменную среды Path. Сборка SQLite содержит как .Net, так и собственный код, объединенный вместе, поэтому вам не нужен Cll (инструмент mergebin, который они включают для этого, довольно интересен)

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