Ваш исходный код работает, но путаница в именовании переменных очевидна.
string con = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =C:\Users\folder\Desktop\ApplicationFolder\AppName\bin\Debug\DataBase\DatabaseName.accdb";
(я удалил ненужные скобки из объявления; это просто строка.)
Вызывать эту строку «con» немного запутанно.Я бы назвал это «connectionString», или, может быть, «cs» для краткости.
OleDbConnection ConnectionString = new OleDbConnection(con);
OleDbCommand command = new OleDbCommand(Query, ConnectionString);
ОК, поэтому вы правильно создаете OleDbConnection, передавая строку соединения (con) его конструктору.Это хорошо.Но вы смутно называете это ConnectionString.Это не строка подключения;это соединение, и ваш код впоследствии использует его правильно.
Так что это работает.Человек может читать из-за неправильного именования переменных, но компилятору все равно, какие у них имена - он очень хорошо знает, что ConectionString является OleDbConnection, и не испытывает никакого когнитивного диссонанса, который я испытываю, когдаЯ смотрю на это.
Если вы переименуете переменные в исходном коде, как я предложил, а затем скопируете этот код в свой класс (кстати, я бы просто назвал его DbConnection; его текущее имя оченьблизко к имени другого класса, что также может сбивать с толку), обращая внимание на то, что делает каждое утверждение и что представляет каждая переменная, тогда вам следует хорошо идти.