Подключение динамического доступа - PullRequest
0 голосов
/ 14 июля 2020

У меня в проекте одна проблема. Мне нужно подключение к базе данных доступа (teste.accdb), но для этого подключения мне нужно изменить согласное имя компьютера и местоположение файла.

string caminhoficheiro = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ caminhoficheiro+"teste.accdb");
    OleDbCommand comando = new OleDbCommand();

, но проблема в "+ caminhoficheiro +". Ошибка: «Инициализатор поля не может ссылаться на нестатическое c поле, метод или свойство Form1.caminhoficheiro»

Если вы можете помочь, спасибо.

1 Ответ

0 голосов
/ 14 июля 2020

Короче говоря, ошибка означает - вы не можете использовать одну переменную экземпляра для инициализации другой переменной экземпляра. В вашем примере вы используете caminhoficheiro для инициализации другой переменной экземпляра conexao

Попробуйте вместо этого ...

OleDbConnection conexao = new OleDbConnection(string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}teste.accdb", Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)));
OleDbCommand comando = new OleDbCommand();

Таким образом, вы избавившись от одного из полей. Есть несколько других способов решить эту проблему (например, настройка на основе конструктора и т. Д. c.), Но это исправление с минимальными изменениями в существующем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...