2016-11-03 2 views
2

오라클 데이터베이스를 Visual Studio에 연결 했으므로 지금 데이터베이스에서 생성 한 프로 시저를 실행하려고합니다. 오라클 프로 시저 실행

나는 노력이 :

  OracleCommand cmd = new OracleCommand("BEGIN ADD_USER('"+txtName.Text+"','"+txtName2.Text+"',"+txtID.Text+"); END;"); 

      cmd.ExecuteNonQuery(); 

내 절차는 3 개 개의 매개 변수가 이름, 2name, ID를. 이 명령을 sqldeveloper에서 사용할 때 제대로 작동하지만 프로젝트에서 시도 할 때 오류가 발생합니다.

답변

1
using (OracleConnection cn = new OracleConnection("con string")) 
{ 
    cn.Open(); 
    OracleCommand cmd = new OracleCommand("ADD_USER"); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Connection = cn; 

    cmd.Parameters.Add("YourSPParamName1", OracleDbType.{YourFieldTypeInDB}).Value = txtName.Text; 
    cmd.Parameters.Add("YourSPParamName2", OracleDbType.{YourFieldTypeInDB}).Value = txtName2.Text; 
    cmd.Parameters.Add("YourSPParamName3", OracleDbType.{YourFieldTypeInDB}).Value = txtID.Text; 

    cmd.ExecuteNonQuery(); 
} 

이와 비슷한 것이 좋습니다.

+0

거의 정확하지만, 그것은 나에게 많은 도움이되었습니다. – ktos1234

+0

@ ktos1234 어디서 실수 했습니까? – mybirthname

+0

Parameters.AddWithValue 클래스가 없으므로 Parameters.Add를 사용해야했습니다. – ktos1234

0

여기 그것은 나를 위해 작동 방법은 다음과 같습니다

 OracleConnectionStringBuilder sb = new OracleConnectionStringBuilder(); 
     sb.DataSource = "localhost"; 
     sb.UserID = "something"; 
     sb.Password = "pass";   
     OracleConnection conn = new OracleConnection(sb.ToString()); 
     conn.Open(); 
      OracleCommand cmd = new OracleCommand("ADD_USER"); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Connection = conn; 

      cmd.Parameters.Add("NAME", OracleDbType.Varchar2).Value = txtName.Text; 
      cmd.Parameters.Add("NAME2", OracleDbType.Varchar2).Value = txtName2.Text; 
      cmd.Parameters.Add("ID", OracleDbType.Int32).Value = txtID.Text; 

      cmd.ExecuteNonQuery(); 
관련 문제