Member 13716754 Ответов: 1

Как получить доступ к объекту в одном классе из другого класса?


Here is my database connection class.I want to access 'oracleCommand' object reference from another class.

<pre>public class DBConnection
        { 
            //public OracleCommand oracleCommand;
            public string cmd = "";
            public void makeConnection()
            {
                //Opening connection
                string connectionString = "XXXX";
                OracleConnection con = new OracleConnection();
                con.ConnectionString = connectionString;
                con.Open();
                OracleCommand oracleCommand = con.CreateCommand();
                cmd = oracleCommand.CommandText;
                //Clossing resources
                con.Close();
                oracleCommand.Dispose();
            }

Затем я хочу выполнить следующий запрос.

dbConnection.cmd = "SELECT COUNT(JOB_ID) FROM EmployeeTable WHERE STATUS='Pending'";
                OracleDataReader Reader = dbConnection.oracleCommand.ExecuteReader();
                Reader.Read();

Но 'dbConnection.oracleCommand.ExecuteReader()' не попадает при отладке. У кого-нибудь есть идея?

Что я уже пробовал:

Я создал '
public OracleCommand oracleCommand;
объект и попытался пройти мимо.Но он не исполняется.

1 Ответов

Рейтинг:
2

F-ES Sitecore

oracleCommand существует только внутри makeConnection, поэтому доступ к нему может получить только код внутри этой функции, поэтому я не понимаю, как ваш код вообще компилируется. Если вы хотите сделать соединение доступным вам нужно будет написать такую функцию как

public static OracleCommand GetConnection()
{
    string connectionString = "XXXX";
    OracleConnection con = new OracleConnection();
    con.ConnectionString = connectionString;
    con.Open();
    OracleCommand oracleCommand = con.CreateCommand();
    return oracleCommand;
}


Во всяком случае, что-то вроде этого, и вы бы назвали это так

var c = DBConnection.GetConnection();


Обратите внимание на "статическое" объявление метода.

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


Maciej Los

GetConnection метод возвращает OracleCommand вместо OracleConnection
Вы слишком быстро набрали скорость ;)

F-ES Sitecore

Обновлено :o я уверен, что ОП мог бы решить это для себя, лол

Maciej Los

;)