Member 12861448 Ответов: 1

Логическая ошибка Sql или отсутствующая база данных


я хочу подключить свою базу данных sqlite к моей visual studio 2013 она показывает ошибку
в то время как файл базы данных уже добавлен в мою папку bin

Что я уже пробовал:

public void connect()
       {
           SQLiteConnection sqlite_conn=new SQLiteConnection();
           SQLiteCommand sqlite_cmd = new SQLiteCommand();
           SQLiteDataReader sqlite_datareader;
           string connstr = "Data Source=dbVkcaddin.db;Version=3;New=False;Compress=True;";
           sqlite_conn.ConnectionString = connstr;
           sqlite_conn.Open();
           sqlite_cmd.CommandText = "SELECT * FROM Client_contact";
           sqlite_cmd.Connection = sqlite_conn;
           sqlite_datareader = sqlite_cmd.ExecuteReader();
           while (sqlite_datareader.Read()) // Read() returns true if there is still a result line to read
           {
               string myreader = sqlite_datareader.GetString(0);
               MessageBox.Show(myreader);
           }
           // We are ready, now lets cleanup and close our connection:
           sqlite_conn.Close();
       }

Richard MacCutchan

Какая ошибка, где она происходит?

Member 12088223

Добавьте базу данных sqlite к некоторому пути например C:\\Users\\data\\test.db и используйте следующий код,

общественного недействительными подключения()
{
SQLiteConnection sqlite_conn=новый SQLiteConnection();
SQLiteCommand sqlite_cmd = новая команда SQLiteCommand();
SQLiteDataReader sqlite_datareader;
//string connstr = "источник данных=dbVkcaddin.db;Version=3;New=False;Compress=True;";
//sqlite_conn.ConnectionString = connstr;
строка fullPath = "C:\\Users\\data\\test.db";
SQLiteConnection conread = new SQLiteConnection("источник данных=" + fullPath);
sqlite_conn.Открыть();
sqlite_cmd.Свойства commandtext = "выбрать * из Client_contact";
sqlite_cmd.Connection = sqlite_conn;
sqlite_datareader = sqlite_cmd.Метода executereader();
while (sqlite_datareader.Read()) // Read() возвращает true, если еще есть строка результата для чтения
{
строка myreader = sqlite_datareader.GetString(0);
Ящик для сообщений.Показать(myreader);
}
// Мы готовы, теперь давайте очистим и закроем наше соединение:
sqlite_conn.Закрывать();
}

1 Ответов

Рейтинг:
1

OriginalGriff

Проблема, вероятно, в том, что он не может найти файл базы данных, как следует из сообщения об ошибке, и это, вероятно, из - за того, где вы его поместили.

Папка "bin" - это плохая идея-ваше приложение не запускается в ней в отладчике *оно работает в "bin/debug", поэтому его не найдут, а в производстве оно также потерпит неудачу, потому что приложение будет находиться в части файловой системы, доступной только для чтения - "Program Files"

Переместите базу данных в более разумное место - Где я должен хранить свои данные?[^] должны помочь - и ваша проблема, скорее всего, исчезнет.