ASP.NET访问Oracle,执行多行语句,并返回值

来源:互联网 发布:mac迅雷没有下载速度 编辑:程序博客网 时间:2024/05/17 01:08

Oracle执行多条语句,语句间需要用“;"分开执行;如果有返回值时,需要定义返回参数

 

C#代码int newID = -1;
//执行insert语句
string sql ="begin " +
  " INSERT into Users (ID,LoginId, LoginPwd, Name, Address)" +
  "VALUES (SQU_USERS.nextval,:v_LoginId, :v_LoginPwd, :v_Name, :v_Address)";
//查询出最新序列值
//sql += ";select SQU_USERS.currval into :v_id from dual;end ;";
//或者返回最新序列值
sql += " return ID into :v_id; end;";
OracleParameter[] para = new OracleParameter[]
  {
    new OracleParameter("v_LoginId", user.LoginId),
    new OracleParameter("v_LoginPwd", user.LoginPwd),
    new OracleParameter("v_Name", user.Name),
    new OracleParameter("v_Address", user.Address),
//定义输出参数
    new OracleParameter("v_id",OracleType.Number,0,ParameterDirection.Output,"ID",DataRowVersion.Current,false,newID)
};
//执行语句
int newId = DBHelper.GetScalar(sql, para);
//从参数列表中查找输出参数的值
newID =Convert.ToInt32( para[8].Value);
...  ...