sqlhelper存储过程
㈠ sqlhelper 执行 Oracle 的存储过程,如何返删除的行数请给出简单可行的例子 。
public override int DeleteUser(string userID)
{
OracleParameter[] para =new OracleParameter[2];
para[0] = new SqlParameter(":userID", OracleDbType.VARCHAR2) { Value = userID };
para[1] = new SqlParameter(":rowCnt", OracleDbType.Number) { Direction = ParameterDirection.Output };
// 调用有参数的存储过程
sqlHelper.ExecuteNonQuery(ConnectionString, GetFullyQualifiedName("Userdelete"), para);
return (int)para[1].Value;
}
//////////////////////////////////////////////
CREATE OR REPLACE PROCEDURE Userdelete
(
userID IN VARCHAR2,
rowCnt out number
)
IS
BEGIN
DELETE FROM USERM WHERE userID = 'S001';
select sql%rowcount into rowcnt from al;
END;
Oracle有个隐式参数:sql%rowcount
用于记录受影响的行数
给存储过程设置一个output的参数
在删除语句后面用:
select sql%rowcount into 参数 from al
㈡ SQL Server 如何执行 带参数的 存储过程
带参数的存储过程执行方法如下:
(1)调用通用数据访问类:SqlHelper,执行SqlHelper.ExecuteNonQuery()方法
(2)使敬誉春用示例:SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcere,sqlexec,myparm)
(3)其中传递的4个参数如下:
“conn”:为链接字符
“CommandType.StoredProcere”:表示要执亮耐行的SQL存储过程类型
“sqlexec”:要执行的SQL存储过程
“myparm”:为传递的参虚冲数,它需要参数的初始化、赋予参数名称、设定类型、长度和值等
(4)当ExecuteNonQuery()执行select 查询时,结果总是返回-1。ExecuteNonQuery()执行Update、Insert和Delete语句时,返回值为该命令所影响的行数。