2015-09-09 3 views
1

Код застрял вInvalid SQL ошибка характер, OracleDataReader

OracleDataReader reader = inst.Command.ExecuteReader(); 

с погрешностью ORA-00911: недопустимый символ (в запросе). Я проверил запрос отдельно его работу. Пожалуйста, направляйте

public DataSet Get_CurrentTask(Employee emp) 
    { 
     if (inst.isConnected == true) 
     { 
      string query = "SELECT employees.empl_id, employees.emp_name FROM employees LEFT JOIN TASK_SUM On employees.empl_id= TASK_SUM.emp_ID;"; 
      Database inst.Command = new System.Data.OracleClient.OracleCommand(query, inst.getConnection()); 
      inst.Command.CommandType = CommandType.Text; 
      OracleDataAdapter da= new OracleDataAdapter(inst.Command); 
      OracleCommandBuilder cb = new OracleCommandBuilder(da); 
      OracleDataReader reader = inst.Command.ExecuteReader(); 
      DataSet ds = new DataSet(); 
      da.Fill(ds); 
     } 
     return ds; 
    } 
+0

Вы можете показать полное исключение из трассировки стека –

+2

Я думаю, что точка с запятой в конце инструкции SQL не должна быть. то есть 'string query =" SELECT employees.empl_id, employees.emp_name FROM employees LEFT JOIN TASK_SUM На employee.empl_id = TASK_SUM.emp_ID ";' –

+0

Мне кажется, вам нужно удалить точку с запятой, которая находится в конце запроса. – trallallalloo

ответ

3

Вы должны удалить точку с запятой в конце строки запроса. потому что метод команды Oracle автоматически добавляет точку с запятой в конец строки запроса.

так,

public DataSet Get_CurrentTask(Employee emp) 
{ 
    if (inst.isConnected == true) 
    { 
     string query = "SELECT employees.empl_id, employees.emp_name FROM employees LEFT JOIN TASK_SUM On employees.empl_id= TASK_SUM.emp_ID"; 
     Database inst.Command = new System.Data.OracleClient.OracleCommand(query, inst.getConnection()); 
     inst.Command.CommandType = CommandType.Text; 
     OracleDataAdapter da= new OracleDataAdapter(inst.Command); 
     OracleCommandBuilder cb = new OracleCommandBuilder(da); 
     OracleDataReader reader = inst.Command.ExecuteReader(); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
    } 
    return ds; 
} 

придется работать.

+0

Он работал, удалив полуколону из запроса. благодаря – user5226155

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