Skip to content

存储过程输入参数的执行

XuguConnection conn = new XuguConnection();
conn.ConnectionString = conn_xugu;
try
{
    conn.Open();
    XuguCommand cmd = new XuguCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select count(*) from user_tables where table_name='T_PROC10'";//T_pack_func1
    if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
    {
        cmd.CommandText = "drop table T_PROC10 cascade";
        cmd.ExecuteNonQuery();
    }
    cmd.CommandText = "create table T_PROC10(pid int ,pname varchar)";
    cmd.ExecuteNonQuery();
    string sql = "create or replace PROCEDURE P1(pid  INT,pname VARCHAR )";
    sql += " AS  BEGIN ";
    sql += " insert into T_PROC10 values(pid,pname);";  
    sql += " end; ";
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    cmd.CommandText = "P1";
    cmd.CommandType = CommandType.StoredProcedure;          
    //参数赋值
    cmd.Parameters.Add("pid", XuguDbType.Int).Value = 2;
    cmd.Parameters.Add("pname", XuguDbType.VarChar).Value = "开发部";
    cmd.ExecuteNonQuery();
    //重复执行参数赋值前,需清除前次参数
    cmd.Parameters.Clear();
    cmd.Parameters.Add("pid", XuguDbType.Int).Value = 3;
    cmd.Parameters.Add("pname", XuguDbType.VarChar).Value = "测试部";
    cmd.ExecuteNonQuery();
    return 1;
}
catch (System.Exception ex)
{
    Console.WriteLine(ex.ToString());
    conn.Close();
    return 0;
}