2016-11-03 50 views
2

我將oracle數據庫連接到visual studio,現在我試圖執行我在數據庫中創建的過程。執行Oracle過程

我嘗試這樣做:

  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();