используя SqLite в Asp.Net - PullRequest
       3

используя SqLite в Asp.Net

1 голос
/ 20 ноября 2011

Я пытаюсь использовать SqLite в своей Asp.Net.У меня есть код ниже в строке подключения web.config

<add name="ConnectionStringName" connectionString="data source=MembersLastLogin3.s3db" providerName="System.Data.SQLite" />

, а вот код для выполнения запроса

public  int ExecuteNonQuery(string sql)
    {
        try
        {
            string con = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString; 
            SQLiteConnection cnn = new SQLiteConnection(con);
            cnn.Open();
            SQLiteCommand mycommand = new SQLiteCommand(cnn);
            mycommand.CommandText = sql;
            int rowsUpdated = mycommand.ExecuteNonQuery();
            cnn.Close();
            return rowsUpdated;              
        }
        catch { throw; }
    }
}

и этот простой запрос

sql = "INSERT INTO LastLogin (MemId ) VALUES ('" + res + "');";
                LocalDb.ExecuteNonQuery(sql);

, ноЯ получаю сообщение об ошибке «Table LastLogin не существует»

Я уже использовал SqLitein .Net, но впервые использую его в Asp.Net, уверен, что таблица существует, но, похоже,это может подключиться к нему, где моя проблема?достаточно ли настройки в web.config?есть ли учебник?спасибо

Ответы [ 3 ]

2 голосов
/ 20 ноября 2011

Полагаю, ваш файл базы данных хранится в каталоге App_Data на сайте asp.net.

Так что просто попробуйте изменить строку подключения с помощью:

<add name="ConnectionStringName" connectionString="data source=|DataDirectory|MembersLastLogin3.s3db" providerName="System.Data.SQLite" />
0 голосов
/ 20 ноября 2011

Проверьте, существуют ли таблицы в базе данных SQLite, используя метод GetSchema:

using ( var conn = new SQLiteConnection( "Data Source=<PathToDb>\\MembersLastLogin3.s3db" ) )
{
  DataTable tbl = conn.GetSchema("Tables")
  // The DataTable will list all the tables in the
  // db as well as information about each table.
}

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

В качестве примечания, касающегося примера кода, который вы разместили, если вы ничего не делаете с исключением, нет необходимости пытаться / перехватить исключение, если исключение просто будет возвращено.

0 голосов
/ 20 ноября 2011

Редактировать: Похоже, вам нужно указать абсолютный путь: SQLite, к которому обращается код, не имеет таблиц?

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