У меня есть рабочее соединение ODBC в одном из проектов, но я хочу СУХОЙ и иметь класс соединения, доступный для всего решения.
Итак, я удалил повторяющийся код из каждого проекта и создал следующий класс, на который я затем ссылался во всех проектах:
using System;
using System.Data.Odbc;
public class ConnectWithDb
{
public OdbcConnection Connection;
public OdbcConnection Connect()
{
try
{
string connectionString = "Driver={" + Constants.DriverODBC + "};Dbq=" + Constants.DbFileName + ";Uid=Admin;Pwd=;";
OdbcConnection Connection = new OdbcConnection(connectionString);
Connection.Open();
return Connection;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
Затем в каждом проекте и перед методом Main () я делаю:
private ConnectWithDb dbConnection = new ConnectWithDb();
Там нет ошибок. Проблема в том, что когда я пытаюсь создать команду внутри любого из методов, я получаю сообщение об ошибке, подобное этому:
OdbcCommand command = dbConnection.CreateCommand();
dbConnection подчеркнут и сообщает An object reference is required for the non-static field, method or property 'Program.dbConnection'
Я пытался установить некоторые методы и значения как статические, но это дает массу других ошибок.
Я думаю , что ConnectWithDb не возвращает фактическое соединение ... это правильно? Что я здесь не так делаю?
Спасибо!