Как решить возникшую ошибку?
Есть код
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");

