Как решить возникшую ошибку?

Есть код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using HomeTest.База_данныхDataSetTableAdapters;

namespace HomeTest
{
    public partial class statistics : Form
    {
        public static string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\User\\Desktop\\Домашнее задание\\База данных.mdb";

        private OleDbConnection myConnection;

        public statistics()
        {
            InitializeComponent();

            myConnection = new OleDbConnection(connectString);
            myConnection.Open();
        }

        private void statistics_FormClosing(object sender, FormClosingEventArgs e)
        {
            myConnection.Close();
        }

        private void statistics_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            string query = "SELECT Тип, Категория, Дата, Сумма  FROM Accounting ORDER BY Id";
            OleDbCommand command = new OleDbCommand(query, myConnection);
            OleDbDataReader reader = command.ExecuteReader();
            listBox1.Items.Clear();
            while (reader.Read()) 
            {
                listBox1.Items.Add(reader[0].ToString() + " " + reader[1].ToString() + " " + reader[2].ToString() + "  " + reader[3].ToString());
            }
            reader.Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

при запуске программы на компьютере где делалась программа ошибок нет. но если с другого компьютера при нажатии на кнопку "Статистика" на форме возникает ошибка в виде необработанного исключения в коде myConnection.Open(); в чем может быть причина?

код самой кнопки "Статистика" в главной форме такой

private void stButton_Click(object sender, EventArgs e)
{
    statistics st = new statistics();
    st.Owner = this;
    st.Show();
}

P.S. В качестве базы данных используется Access.

Главная Форма

Сама ошибка


Ответы (1 шт):

Автор решения: aepot

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

public static string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.Combine(new FileInfo(Application.ExecutablePath).DirectoryName, "База данных.mdb");
→ Ссылка