2
Я создал программное обеспечение для чтения данных из Oracle DB, отправив его по SMS, но я хочу, чтобы datareader не читал, когда я нажимаю клавишу C на клавиатуре, но когда я это сделал, я получаю это сообщение об исключении :как остановить oracledatareader от чтения
Operation is not valid due to the current state of the object
трассировки стека:
at Oracle.DataAccess.Client.OracleDataReader.Read()
at Test_SMS_AT_Command.Program.OnTimer(Object obj, EventArgs args)
и это мой код:
oraCommand.ExecuteNonQuery();
OracleDataAdapter oraDataAdapter = new OracleDataAdapter(oraCommand);
Oracle.DataAccess.Types.OracleRefCursor refCursor = (Oracle.DataAccess.Types.OracleRefCursor)oraParameter.Value;
OracleDataReader reader = refCursor.GetDataReader();
while (reader.Read())
{
if (cki.Key == ConsoleKey.C)
{
cancel();
if (reader != null)
{
reader.Close(); //Closed
}
break;
}
if (sms.sendSms(reader["MOBILE_NO"].ToString(), reader["TEXT"].ToString()))
{
Console.WriteLine("Message successfully sent to " + reader["MOBILE_NO"].ToString() + ": " + DateTime.Now);
setStatus(Convert.ToInt32(reader["GORANNET_SMS_ID"]));
writeToFile(reader["TEXT"] + " sent to " + reader["MOBILE_NO"] + " at: " + DateTime.Now);
}
else
{
Console.WriteLine("Message was not sent");
}
System.Threading.Thread.Sleep(15000);
}
Спасибо вы
Вы не видите соединение по объекту Command? –
no Я не пропустил ничего, что читатель работает отлично, но я хочу, чтобы читатель не читал дальше, когда я нажимаю клавишу C на клавиатуре – danarj