执行Oracle程序

时间:2016-11-03 19:58:41

标签: c# oracle stored-procedures

我将我的oracle数据库连接到visual studio,现在我正在尝试执行我在数据库中创建的过程。

我试过了:

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

            cmd.ExecuteNonQuery();

我的程序有3个参数:name,2name,id。我在sqldeveloper中使用此命令时工作正常,但是当我在项目中尝试它时出错。

2 个答案:

答案 0 :(得分: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();
}

这样的事情应该有效。

答案 1 :(得分: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();