ASP.NET 往oracle插入一条数据并返回ID

1、运用序列 StringBuilder strSql = new StringBuilder();

strSql.Append("begin");

strSql.Append(" insert into TEST.PERSON(PID,PNAME,PAGE)");

strSql.Append(" values(TEST.SEQ_PERSON.NEXTVAL,:pname,:page);");

 strSql.Append(" select TEST.SEQ_PERSON.CURRVAL into :c_id from dual;");

strSql.Append(" end;");

OracleParameter[] paras ={new OracleParameter("pname",OracleType.NVarChar,50),

                                             new OracleParameter("page",OracleType.Int32),

                                             new OracleParameter("c_id",OracleType.Int32)};

    paras[0].Value = "zhang";

    paras[1].Value = 20;

    paras[2].Direction = ParameterDirection.Output;

    string connStr = "Data Source=orcl;User Id=TEST;Password=test;";

     object o = OracleHelper.ExecuteNonQuery(connStr, CommandType.Text, strSql.ToString (), paras);

     object c_id = paras[2].Value;

      Response.Write(c_id);

 

 2、取ID的最大值 

    StringBuilder strSql = new StringBuilder();

    strSql.Append("begin");

    strSql.Append(" insert into TEST.PERSON(PID,PNAME,PAGE)");

    strSql.Append(" values(TEST.SEQ_PERSON.NEXTVAL,:pname,:page);");

    strSql.Append(" select MAX(PID) into :MaxId from TEST.PERSON;");

    strSql.Append(" end;");

    OracleParameter[] paras ={new OracleParameter("pname",OracleType.NVarChar,50),

                                                new OracleParameter("page",OracleType.Int32),

                                                new OracleParameter("MaxId",OracleType.Int32)};

    paras[0].Value = "zhang";

    paras[1].Value = 20;

    paras[2].Direction = ParameterDirection.Output;

    string connStr = "Data Source=orcl;User Id=TEST;Password=test;";

    object o = OracleHelper.ExecuteNonQuery(connStr, CommandType.Text, strSql.ToString (), paras);

    Response.Write(paras[2].Value);

  注意:执行多条sql语句不能有物理换行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值