Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 29.07.2010
Сообщений: 22

программа подключается к базе (Firebird, SQLite) только на компе с Microsoft Visual C#

10.02.2014, 20:19. Показов 3777. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как разобраться.
Программа подключается к базе (Firebird, SQLite) только на компе с Microsoft Visual C#, на котором она создается, если перенести ее на любой другой комп, то при подключении к базе Firebird ошибка вот такая
Сигнатура проблемы:
Имя события проблемы: CLR20r3
Сигнатура проблемы 01: test.exe
Сигнатура проблемы 02: 1.0.0.0
Сигнатура проблемы 03: 52f8ef92
Сигнатура проблемы 04: FirebirdSql.Data.FirebirdClient
Сигнатура проблемы 05: 4.1.0.0
Сигнатура проблемы 06: 52c5226d
Сигнатура проблемы 07: 35c
Сигнатура проблемы 08: d7
Сигнатура проблемы 09: RLZ2AHQIFT0LD4PGVXMMI0HTOTMI2VY3
Версия ОС: 6.1.7600.2.0.0.272.7
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

к базе SQLite ошибка такая
Сигнатура проблемы:
Имя события проблемы: CLR20r3
Сигнатура проблемы 01: test.exe
Сигнатура проблемы 02: 1.0.0.0
Сигнатура проблемы 03: 52f8d87c
Сигнатура проблемы 04: PresentationCore
Сигнатура проблемы 05: 4.0.0.0
Сигнатура проблемы 06: 4ba1f865
Сигнатура проблемы 07: 1a53
Сигнатура проблемы 08: 1d
Сигнатура проблемы 09: System.IO.FileNotFoundException
Версия ОС: 6.1.7600.2.0.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

во втором случае скорее всего не находится файл базы
код подключения к ней
const string databaseName = "test.db3";
SQLiteConnection connection = new SQLiteConnection(string.Format("Data Source={0};", databaseName));
connection.Open();

Файл test.db3 в том же каталоге, что и test.exe.
Если на комп установить Visual C# ошибки не возникают, программа делает выборку из базы, Framework на всех компах v4.0.30319
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2014, 20:19
Ответы с готовыми решениями:

Программа не подключается к БД SQLite на другом устройстве
Всем привет! Помогите плз! Написал программу на c# + sqlite. Написал на ноутбуке, на нем все работает. Переношу на домашний комп не...

Программа не подключается к базе данных
при попытке запустить программы выдаёт такую ошибку

Периодически программа не подключается к базе по dns имени
Программа подключается к базе sql на ms sqrser 2008 по dns имени. Сразу сервер имел один ip. Но было необходимо подключить ещё один ip...

21
0 / 0 / 0
Регистрация: 29.07.2010
Сообщений: 22
14.02.2014, 15:34  [ТС]
Студворк — интернет-сервис помощи студентам
проект примитивный, я только тестирую соединение и выборку из базы

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing;
 
using System.Data.SQLite;
using System.Data.Common;
using System.IO;
using System.Runtime.CompilerServices;
using System.Windows.Threading;
using System.Reflection;
 
namespace test
{
 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            Dispatcher.UnhandledException += Dispatcher_UnhandledException;
            System.Windows.Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
        }
 
        private void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            System.Windows.MessageBox.Show(e.Exception.Message);
        }
 
        private void Dispatcher_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            System.Windows.MessageBox.Show(e.Exception.Message);
        }
 
        private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var exception = e.ExceptionObject as Exception;
            System.Windows.MessageBox.Show(exception.Message);
        }
 
        private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            System.Windows.MessageBox.Show(Assembly.GetExecutingAssembly().Location);
 
            string directoryName = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string combine = System.IO.Path.Combine(directoryName, "System.Data.SQLite.dll");
            return Assembly.LoadFile(combine);
        }
        
        private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            const string databaseName = "test.db3";
            SQLiteConnection connection =
                new SQLiteConnection(string.Format("Data Source={0}\\{1};", AppDomain.CurrentDomain.BaseDirectory, databaseName));
            connection.Open();
            SQLiteCommand command = new SQLiteCommand("SELECT * FROM 'example';", connection);
            SQLiteDataReader reader = command.ExecuteReader();
            foreach (DbDataRecord record in reader)
            {
                string id = record["id"].ToString();
                string value = record["value"].ToString();
                string result = id + " = " + value + "\n";
                textBox1.Text += result;
 
 
            }
            connection.Close();
        }
    }
}
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
14.02.2014, 18:08
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Вот мой код, который работает без установленного SQL Lite

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public partial class App : Application
    {
        public App()
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            Dispatcher.UnhandledException += Dispatcher_UnhandledException;
            Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
            const string databaseName = "test.db3";
            SQLiteConnection connection =
                new SQLiteConnection(string.Format("Data Source={0}\\{1};", AppDomain.CurrentDomain.BaseDirectory, databaseName));
            connection.Open();
            SQLiteCommand command = new SQLiteCommand("SELECT * FROM 'example';", connection);
            SQLiteDataReader reader = command.ExecuteReader();
            foreach (DbDataRecord record in reader)
            {
                string id = record["id"].ToString();
                string value = record["value"].ToString();
                string result = id + " = " + value + "\n";
                //textBox1.Text += result;
            }
            connection.Close();
        }
 
        private void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            MessageBox.Show(e.Exception.Message);
        }
 
        private void Dispatcher_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            MessageBox.Show(e.Exception.Message);
        }
 
        private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var exception = e.ExceptionObject as Exception;
            MessageBox.Show(exception.Message);
        }
 
        private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
           
                MessageBox.Show(Assembly.GetExecutingAssembly().Location);
 
                string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                string combine = Path.Combine(directoryName, "System.Data.SQLite.dll");
                return Assembly.LoadFile(combine);
            
        }
    }
Кинул рядом dll и не падает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2014, 18:08

SQLite. Как из двух записей в базе данных сделать третью, используя только SQL?
Есть Два поля: Индекс и Дата, оба хранятся как varchar(50), оба не равны нулю какой должен быть запрос, чтобы при занесении в таблицу...

Программа для построения графиков в Microsoft Visual Studio
Среда разработки Microsoft Visual Studio. Смысл программы такой: имеется форма на которой расположены 2 метки (хотя бы две, чтобы...

Как считать только вторую строку из текстового файла (Microsoft Visual Studio 2005)
5 // размерность массива 1 2 3 4 5 // Элементы массива , то что нужно считать! ------------------------------- Индекс max-элемента...

FireBird и MS SQL Server на одном компе
У меня на компьютере установлен MS SQL Server. Решил протестировать FireBird. Установил. Но не запускается. Жму на кнопку старт в...

Microsoft Visual C++ 2010: программа делает Debug старой версии кода
Столкнулся с определённой проблемой в процессе работы. 1.Пишу код,запускаю код,жму Debag,программа работает. 2.Хочу внести...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru