this one과 비슷한 나의 질문은 OracleDataReader를 사용하여 주어진 레코드의 모든 필드를 검색하는 방법입니까? 현재, 나는 한 번에 하나 개의 열 값을 반환이 방법을 사용하고있다 :OracleDataReader를 사용하여 주어진 레코드의 모든 필드를 검색하는 방법은 무엇입니까?
public string Select_File(string filename, string subdirectory, string envID)
{
Data_Access da = new Data_Access();
OracleConnection conn = da.openDB();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM EIP_Deployment_Files"
+ " WHERE Filename ='" + filename + "'"
+ " AND Subdirectory = '" + subdirectory + "'"
+ " AND Environment_ID = '" + envID + "'";
cmd.CommandType = CommandType.Text;
string x;
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows) // file exists in DB
{
dr.Read();
x = dr.GetString(2).ToString(); // return baseline filename (index 2)
}
else
{
x = "New File";
}
cmd.Dispose();
da.CloseDB(conn);
return x;
}
나는 (I이었다이 방법은 완벽과는 거리가 멀다하고 PPL이 그것을 지적하는 빠른 될 것이라고 확신 기본적으로 ASP.NET의 사전 경험이 없기 때문에 상사가 부여했습니다.) 그러나 실제로 관심이있는 것은 그것이 작동한다는 것입니다. 내 질문은 : 모두 주어진 레코드에 대한 필드를 반환 할 수 수정 할 수 있습니까?
필드는 VARCHAR2, CHAR 또는 DATE 데이터 유형 중 하나이며 (차이가 나는 경우) 이러한 값 중 일부는 null 일 수 있습니다. 문자열로 변환하여 목록으로 반환 할 수 있다고 생각하고 있습니까?
주 :'cmd.CommandText'는 주입 공격에 취약합니다 – rdev5