2012-08-07 4 views
1

현재 데이터 액세스 계층 클래스 (UserDAL 클래스)와 함께 컨트롤러 클래스를 사용하여 데이터베이스를 변경합니다. 그러나 나는 매개 변수화 된 쿼리를 사용하지 않기 때문에 코드가 배제된다는 것을 알고 있습니다.OracleDataAdapter를 사용한 매개 변수화 된 쿼리

나는 명령 개체를 사용하여 쿼리를 사용하는 방법을 보았다. 그러나 나는 조금 다르게 행동하는 것 같다 OracleDataAdapter를 사용하고 있습니다. 세 문자열은 사용자가 입력 필드에서 채워

컨트롤러 코드 :

string usrName = mod.UserName; 
string role = mod.Role; 
string mod.actvInd; 


string sql = "UPDATE LD_USER_ROLE" + " SET USERNAME='" + usrName + "', ROLE='" + role + "', ACTIVE_IND='" + actvInd + "' WHERE USER_ROLE_ID=" + id + ""; 

UserRoleDAL udl = new UserRoleDAL(); 
      udl.ExecuteQuery(sql); 
은 코드의 다음 섹션에서 여기에서 알 수있는 바와 같이, 파라미터 화 될 실제 값과는 다른 클래스에도

UserDAL 클래스 :

public class UserRoleDAL 
{ 

    private OracleConnection conn; 

    public UserRoleDAL() 
    { 
     string oradb = ConfigurationManager.ConnectionStrings["db_dbConnectionString"].ConnectionString; 

     conn = new OracleConnection(oradb); 
    } 


    public void ExecuteQuery(string sql) 
    { 
     conn.Open(); 

     OracleDataAdapter adapter = new OracleDataAdapter(sql, conn); 
     DataSet ds = new DataSet(); 
     adapter.Fill(ds); 

     conn.Close(); 
    } 
} 

어떻게이 작업을 수행하기 위해 UserRoleDAL 객체로 필드를 통과 나는 OracleDataAdapter 개체 paramterized 쿼리를 사용하고 난 심지어 위의 클래스를 병합하거나해야 할 것입니까?

+0

[OracleDataAdapter (http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracledataadapter (V = 대 .100) .aspx)는 이제 쓸모가 없습니다. 왜 아직도 사용하고 있습니까? – Habib

+0

@habib 대신 무엇을 사용해야합니까? ODP.Net – Sperick

+0

을 사용하여 Oracle 데이터베이스에 연결 중입니다. OracleCommand를 매개 변수와 함께 사용하고 OracleDataAdapter와 함께 사용할 수 있습니다. OracleDataAdapter의 대체에 대해 잘 모르겠습니다. – Habib

답변

2

이 같은 OracleCommand를 üith OracleDataAdapter를 사용할 수 있습니다

public void ExecuteQuery(string usrName, string role, string activeation, int userId) 
{ 
    string sql = "UPDATE LD_USER_ROLE SET USERNAME=:usrName, ROLE=:role, ACTIVE_IND=:actvInd WHERE USER_ROLE_ID=:id"; 

    OracleCommand cmd = new OracleCommand(sql, conn); 
    cmd.BindByName = true; 

    cmd.Parameters.Add("usrName", usrName); 
    cmd.Parameters.Add("role", role); 
    cmd.Parameters.Add("actvInd", activeation); 
    cmd.Parameters.Add("id", userId); 

    OracleDataAdapter adapter = new OracleDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    adapter.Fill(ds); 
}