Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/32: Рейтинг темы: голосов - 32, средняя оценка - 4.78
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
SQLite

Как сделать переносимым на другие пк приложение с бд sqlite

30.06.2014, 17:19. Показов 7218. Ответов 43

Студворк — интернет-сервис помощи студентам
Доброе всем время суток. Столкнулся с проблемой при переносе программы с бд sqlite на другой комп. Файл базы находится со всеми библиотеками и exeшником в одной папке. Когда пытаюсь открыть это приложении на другом компе, появляется ошибка: ""Возникшая проблема привела к прекращению работы программы". Помогите, пожалуйста решить эту проблему! Где я ошибся? Надо чтото в коде прописывать??? В чем тут проблема??
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2014, 17:19
Ответы с готовыми решениями:

Как сделать текст узла TreeView контрола переносимым (multiline)
Приветствую всех! Нужна ваша помощь, стандартный контрол TreeView VS 2010 не поддерживает многострочность (multiline) текста узлов, как...

Как собрать приложение С++ которое содержит исходники SQLite
Доброе времени суток, уважаемые форумчани. Столкнулся со следующей проблемой пишу приложение на с++ для хранения данных решил выбрать базу...

Почему приложение состоит из одного exe, и не содержит дополнительных библиотек, как другие приложения
Всегда интересовало. Почему написанную на delphi программу когда скомпилируешь появляется всего один файл с расширением *.exe? А...

43
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 21:29
Студворк — интернет-сервис помощи студентам
Так сделай:
C#
1
string bd = Application.StartupPath + "\\cyber.db";
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 21:32  [ТС]
нет приложение все равно не запускается. говорит бд не найдена. Хотя она в папке с программой

вот код программы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  static string bd = Application.StartupPath + "\\cyber.db";
        SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0}", bd));
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            SQLiteCommand com = new SQLiteCommand("SELECT id FROM example", con);
            con.Open();
            SQLiteDataReader r = com.ExecuteReader();
            foreach(DbDataRecord rec in r)
            {
                listBox1.Items.Add(rec["id"]);
            }
 
        }
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 21:33
Выведи его куда-нибудь и посмотри, соответствует ли.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 21:35  [ТС]
вывел его
C#
1
 static string bd = Application.StartupPath + "D:\\cyber.db";
Все равно не работает(( хотя вывел на д диск ее


а вот так заработала
C#
1
static string bd = "D:\\cyber.db";
Но вопрос, как сделать чтобы с папки запускалась она где прога лежит?? Чтобы я мог ее переносить.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
02.07.2014, 21:38
Data Source=cyber.db
По умолчанию в той же папке должно искаться.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 21:39  [ТС]
Проблема в том что не ищется(
в чем может быть проблема????
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 21:40
Там ещё кавычки нужна, если путь пробелы содержит
C#
1
SQLiteConnection con = new SQLiteConnection(string.Format("Data Source='{0}'", bd));
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 21:44  [ТС]
вот так оно не запускается
C#
1
2
static string bd = "cyber.db";
        SQLiteConnection con = new SQLiteConnection(string.Format("Data Source='{0}'", bd));
меняю на static string bd = "\\cyber.db"; программа открывается.
Но если я переношу папку с программой в другое место. То все бд не не видит она. Почему так происходит?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
02.07.2014, 21:46
System.Data.SQLite.SQLiteConnectionStrin gBuilder - для этих целей был создан.

Добавлено через 1 минуту
Цитата Сообщение от blackstar Посмотреть сообщение
То все бд не не видит она. Почему так происходит?
Уважаемый это форум программистов, а не гадалок. Отлаживайся, смотри какие ошибки выдает. По пустякам начинаете спрашивать, по многим Вашим вопросам ответы давно в интернете существуют.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 21:47  [ТС]
а как использовать SQLiteConnectionStringBuilder ??? Логика приложения меняется, потому что SQLiteCommand выдавать ошибку начинет
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 21:49
Сделай вывод, через сообщение или куда-то в форму, строки bd после вычисления
C#
1
2
static string bd = Application.StartupPath + "\\cyber.db";
SQLiteConnection con = new SQLiteConnection(string.Format("Data Source='{0}'", bd));
И смотри, правильный ли путь получился.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
02.07.2014, 22:00
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Data.SQLite;
 
namespace Ghost
{
    class Program
    {
        static void Main(string[] args)
        {
            SQLiteConnectionStringBuilder stringBuilder = new SQLiteConnectionStringBuilder();
            stringBuilder.DataSource = "Путь к базе данных";
            using (SQLiteConnection connection = new SQLiteConnection(stringBuilder.ToString()))
            {
 
            }
        }
    }
}
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 22:55  [ТС]
Прописал так, но вылетает ошибка

C#
1
2
static string bd = Application.StartupPath + "\\cyber.db";
SQLiteConnection con = new SQLiteConnection(string.Format("Data Source='{0}'", bd));
Миниатюры
Как сделать переносимым на другие пк приложение с бд sqlite  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 22:58
Путь-то проверил?
C#
1
2
3
static string bd = Application.StartupPath + "\\cyber.db";
MessageBox.Show(bd);
SQLiteConnection con = new SQLiteConnection(string.Format("Data Source='{0}'", bd));
1
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 23:00  [ТС]
Прописал так, программа запускается. Но если я беру копирую папку Debug с прогой, куда нибудь в другое место, то вылетает ошибка, которая на скриншоте.

C#
1
2
3
4
5
6
7
8
9
10
11
12
                 SQLiteConnectionStringBuilder stringBuilder = new SQLiteConnectionStringBuilder();
                stringBuilder.DataSource = "\\cyber.db";
                using (SQLiteConnection connection = new SQLiteConnection(stringBuilder.ToString()))
                {
                    SQLiteCommand com = new SQLiteCommand("SELECT id FROM example", connection);
                    connection.Open();
                    SQLiteDataReader r = com.ExecuteReader();
                    foreach (DbDataRecord rec in r)
                    {
                        listBox1.Items.Add(rec["id"]);
                    }
                }
Как сделать, чтобы прога с бд была переносимой????
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 23:03  [ТС]
Проверил путь, на скриншоте его прилагаю. Но следом вылетает ошибка (тоже скриншоте), в чем может быть проблема?
Миниатюры
Как сделать переносимым на другие пк приложение с бд sqlite   Как сделать переносимым на другие пк приложение с бд sqlite  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:12
Путь нормальный, да?
Ошибка при открытии или при выполнении reader?
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 23:13  [ТС]
путь нормальный. ошибка происходит в reader я проследил ее. Она доходит до него и закрывает приложение. Почему так происходит?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:18
Запрос верный? Написано, что no such table.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
02.07.2014, 23:27  [ТС]
Поменял код на этот - заработала прога:
C#
1
2
3
                string bd = "\\cyber.db";
                MessageBox.Show(bd);
                SQLiteConnection cs = new SQLiteConnection(string.Format("Data Source = {0}", bd));
вот какой путь показал (скрин)


Но главная проблема осталась((((( Когда переношу программу, снова вылазиет ошибка.. Почему так??????
Изображения
  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2014, 23:27

Как сделать reindex в sqlite?
Собственно вопрос в названии темы. Ситуация следующая. Есть некая таблица из которой по желанию пользователя может быть удалена одна или...

Jdbc и SQlite. Как лучше сделать?
При каждом взаимодействии с бд (записать/обновить/удалить и тд) мы создаем подключение: Statement statement=co.createStatement()...

Как правильно сделать DateTime запись SQLite
В БД есть столбец с типом DateTime. Запрос я делал следующим образом: .... string insertCommand = "INSERT INTO dateViews...

Как сделать замену согласных букв на другие?
Как сделать замену согласных букв на другие.

Как из полученного массива сделать другие массивы?
получил массив с .тхт в виде $js = , , ]}, {"2", data: , , ]}, ........................... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru