Abdullah... Ответов: 1

Запрос команды Oracle не возвращает строк в C#


Привет,
я использую приведенный ниже код для извлечения даты из базы данных oracle. я использую oracle client 11.2.0.
когда я скопировал запрос в SQL Developer, запрос привел к строкам.

должен ли я настроить oracle client 11.2.0, чтобы иметь возможность использовать его ? или что я должен сделать, чтобы быть в состоянии получить желаемый результат ?

Заранее спасибо.

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

public static System.Data.DataTable GetOracleDataTable(string Query, string tblName)
        {
            System.Data.DataSet dSet = new System.Data.DataSet();

            OracleConnection con = new OracleConnection(Globals.OracleConnectionString) ;
           
            OracleCommand cmd = new OracleCommand();           
            cmd.Connection = con;
            cmd.CommandText = Query;

            OracleDataAdapter adapter = new OracleDataAdapter(cmd);           
            adapter.Fill(dSet, tblName);
           
            return dSet.Tables[tblName];
            
        }

Richard MacCutchan

Что такое запрос, какой результат вы видите ... ?

0x01AA

УМК.Свойство Commandtype = Значение Commandtype.Текст;

Abdullah...

Спасибо,
я добавил строку выше, но ничего не изменилось.

Richard Deeming

"я добавляю условие напрямую, не используя параметры"

Не делай этого. Нет, если вы не хотите, чтобы кто-то уничтожил вашу базу данных и заплатил большой штраф за раскрытие личных данных ваших клиентов.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]

1 Ответов

Рейтинг:
2

Vinod Jangle

Замените свой код нижеприведенным фрагментом кода, и он должен работать.

public static System.Data.DataTable GetOracleDataTable(string Query, string tblName)
{
    System.Data.DataSet dSet = new System.Data.DataSet();
    
    OracleConnection con = new OracleConnection(Globals.OracleConnectionString) ;
    con.Open();

    OracleCommand cmd = new OracleCommand(Query);           
    cmd.Connection = con;
    cmd.CommandText = CommandType.Text;
    
    OracleDataAdapter adapter = new OracleDataAdapter(cmd);           
    adapter.Fill(dSet, tblName);

return dSet.Tables[tblName];
}


Abdullah...

Спасибо,
но конструктор соединений Oracle не принимает два параметра.

[no name]

Обновленный код

RonnieDean77

Вы нашли решение? Я попробовал предложенное выше решение, но до сих пор не получаю никаких результатов в C#, а у разработчика SQL много строк. Какого черта я здесь упускаю?

[no name]

Является ли ваш запрос правильным, если вы запускаете его для получения каких-либо данных?