2014-07-16 2 views
0

oracle db의 SQL 요청에 대해 C#에서 일반 기능을 생성하고 싶습니다.
모든 열을 문자열에 저장하려고합니다. reader.GetString() 메서드를 사용하려고 시도했지만 예외가 발생하여 변환 할 수 없다는 메시지가 나타납니다.
어떻게 그렇게 할 수 있습니까?
string [] request (OracleConnection con, String Table, String condition, String columns, String sort){ //The magic code return "A string-array with all information"; }Oracle DB 요청의 모든 데이터 가져 오기

답변

0

DBReader의 Item 속성을 사용할 수 있습니까? 또한이 방법은 심각한 보안 위험이 있습니다. params 대신 sql injection을 사용하는 조건 문자열을 사용하십시오.

public string[] Request(IDBConnection conn, string table, string condition, string columns, string sort) 
    { 
     List<string> output = new List<string>(); 
     string[] cols = columns.Split(','); 
     string sql = string.Format("select * from {0} etc", table); 
     using (IDBCommand cmd = new OracleCommand(conn, sql)) 
     { 
      conn.Open(); 
      IDBReader reader = cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       foreach (string col in cols) 
       { 
        object field = reader.Item[col]; 
        output.Add(field.ToString()); 
       } 
      } 
     } 
     return output.ToArray(); 
    } 
관련 문제