2015-08-20 3 views
0

В моем приложении, написанном на C#, я использую OracleDataAdapter.Fill() для извлечения данных из базы данных oracle. Есть ли способ установить тайм-аут для выполнения этого метода, потому что иногда он застрял навсегда?Время ожидания OracleDataAdapter.Fill()

UPDATE: вместо «System.Data.OracleClient;» Я использовал «Oracle.DataAccess.Client»; а затем код ниже работает хорошо.

using Oracle.DataAcces.Client; 
... 
OracleDataAdapter yourAdapter = new OracleDataAdapter(strSQLString, connection); 
yourAdapter.SelectCommand.CommandTimeout=120; 
yourAdapter.fill(yourDataSet); 
+1

Я не думаю, что это дубликат. Этот вопрос спрашивает, как установить тайм-аут, а другой вопрос - как решить ошибку таймаута? –

+0

Это не тот же вопрос, похожий, но не тот же. Ответ на этот другой вопрос мне не помог. – kjrkvc

ответ

1

таймаута попробовать этот

OracleDataAdapter yourAdapter = new OracleDataAdapter(strSQLString, connection); 
    yourAdapter.SelectCommand.CommandTimeout=120; 
    yourAdapter.fill(yourDataSet); 

проверьте link, чтобы узнать больше о commandtimeout

+0

Я не могу присвоить любое число командам. даже если я делаю это yourAdapter.SelectCommand.CommandTimeout = 120; после этой команды CommandTimeout по-прежнему равен нулю, а это означает, что нет ограничения по времени – kjrkvc

+0

. Что вы имеете в виду, не можете присвоить номер? Вы получаете какую-либо ошибку? – shreesha

+0

Нет, нет ошибок. Он выполняется без ошибок, но значение CommandTimeout не изменяется, оно всегда равно нулю (до и после назначения). – kjrkvc

0

OracleDataAdapter (как каждый класс, производный от DbDataAdapter базового класса) имеет SelectCommand, используемые для извлечения данных для вставки в целевом DataSet, это SelectCommand имеет свойство с именем CommandTimeout, что вы можете установить на некоторое время в секунд, чтобы поднять исключение

See MSDN DbCommand.CommandTimeout

Смежные вопросы