2016-07-21 2 views
0

Я новичок в AP.Net MVC-сервисах и пытается создать веб-службу, где мы даем массив ввода, который будет подключаться к базе данных oracle и возвращать запрос (используется массив входных данных в фильтре). Я пытаюсь не использовать модель данных объекта и даю классы POCO в модели classes.So, что я пытался это создать простой контроллер, который selectentire данные из базы данныхASP. Служба Net Web API, подключающаяся к базе данных оракула

public class TestOraConnController : ApiController 
{ 
    public string Get(int id) 
    { 
     var strQuery = @"Select PRIO_CATEGORY_ID as PRIO,LANG_ID as LANG, REC_DATE as REC, REC_USER as RECUSER, RFCH_ID as RFCH,DESCR,COL_DESCR AS COL,ROW_DESCR as DROW,ABBR from STCD_PRIO_CATEGORY_DESCR where REC_USER =" +id; 
     OracleConnection dbConn = new OracleConnection("DATA SOURCE=ABC;PASSWORD=ABCD;PERSIST SECURITY INFO=True;USER ID=ABC"); 
     dbConn.Open(); 
     OracleCommand selectCommand = new OracleCommand(strQuery, dbConn); 
     OracleDataAdapter adapter = new OracleDataAdapter(selectCommand); 
     DataTable selectResults = new DataTable(); 
     adapter.Fill(selectResults); 
     dbConn.Close(); 

     return JsonConvert.SerializeObject(selectResults); 
} 

Так что результат выглядит

"[{\"PRIO\":1,\"LANG\":1,\"REC\":\"2011-10-23T20:32:18\",\"RECUSER\":1,\"RFCH\":null,\"DESCR\":\"Internal Study\",\"COL\":\"Internal Study\",\"DROW\":\"Internal Study\",\"ABBR\":\"Intern\"},{\"PRIO\":1,\"LANG\":2,\"REC\":\"2011-10-23T20:32:18\",\"RECUSER\":1,\"RFCH\":null,\"DESCR\":\"Internal Study\",\"COL\":\"Internal Study\",\"DROW\":\"Internal Study\",\"ABBR\":\"Intern\"},{\"PRIO\":2,\"LANG\":1,\"REC\":\"2011-10-23T20:32:31\",\"RECUSER\":1,\"RFCH\":null,\"DESCR\":\"Client Study\",\"COL\":\"Client Study\",\"DROW\":\"Client Study\",\"ABBR\":\"Client\"}]" 

Теперь, если мне нужно указать массив входного параметра, я как-то взаимодействую с массивом параметров для выбора. Я понимаю, что мы даем

public string get(int []d) 

Но не знаете, как нам нужно изменить запрос. Любой hep очень оценен.

+0

Там нет «ASP.NET MVC Web Services ». Однако есть ASP.NET Web API. –

+0

Это была ошибка, извините. – trx

ответ

2

Если вы сохраните переменную "strQuery", вы можете использовать ключевое слово IN:

SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn) 

string.Join и метод форматирования Идентификаторы

var ints = new int[] {1, 2, 3, 4, 5}; 
var ids= string.Join(",", ints.Select(x => x.ToString()).ToArray());// "1,2,3,4,5" 

var strQuery = [email protected]"Select PRIO_CATEGORY_ID as PRIO,LANG_ID as LANG, REC_DATE as REC, REC_USER as RECUSER, RFCH_ID as RFCH,DESCR,COL_DESCR AS COL,ROW_DESCR as DROW,ABBR from STCD_PRIO_CATEGORY_DESCR where REC_USER IN({ids})"; 
+0

Спасибо, Джоан, я понимаю часть запроса, но на самом деле не получаю, как бы итерации по массиву входных параметров – trx

+0

Ответ обновлен. Почему вам нужно итерации? –

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