执行存储过程的方法
来源:互联网 发布:白百合 知乎 编辑:程序博客网 时间:2024/05/01 16:55
public IList ExecuteStoredProc( string spName, ICollection paramInfos ) {
IList result = new ArrayList();
ISessionFactoryImplementor s = (ISessionFactoryImplementor)cfg.BuildSessionFactory();
IDbCommand cmd = s.ConnectionProvider.Driver.CreateCommand();
cmd.CommandText = spName;
cmd.CommandType = CommandType.StoredProcedure;
// 加入参数
if ( paramInfos != null ) {
foreach( ParamInfo info in paramInfos ) {
IDbDataParameter parameter = cmd.CreateParameter();
parameter.ParameterName = info.name; // driver.FormatNameForSql( info.Name );
parameter.Value = info.Value;
cmd.Parameters.Add( parameter );
}
}
IDbConnection conn = s.OpenConnection();
try {
cmd.Connection = conn;
IDataReader rs = cmd.ExecuteReader();
while ( rs.Read() ) {
int fieldCount = rs.FieldCount;
object[] values = new Object[ fieldCount ];
for ( int i = 0; i < fieldCount; i ++ )
values[i] = rs.GetValue(i);
result.Add( values );
}
}
finally {
s.CloseConnection(conn);
}
return result;
}
其中ParamInfo为存储参数信息的结构, 定义如下:
public struct ParamInfo {
public string Name;
public object Value;
}
IList result = new ArrayList();
ISessionFactoryImplementor s = (ISessionFactoryImplementor)cfg.BuildSessionFactory();
IDbCommand cmd = s.ConnectionProvider.Driver.CreateCommand();
cmd.CommandText = spName;
cmd.CommandType = CommandType.StoredProcedure;
// 加入参数
if ( paramInfos != null ) {
foreach( ParamInfo info in paramInfos ) {
IDbDataParameter parameter = cmd.CreateParameter();
parameter.ParameterName = info.name; // driver.FormatNameForSql( info.Name );
parameter.Value = info.Value;
cmd.Parameters.Add( parameter );
}
}
IDbConnection conn = s.OpenConnection();
try {
cmd.Connection = conn;
IDataReader rs = cmd.ExecuteReader();
while ( rs.Read() ) {
int fieldCount = rs.FieldCount;
object[] values = new Object[ fieldCount ];
for ( int i = 0; i < fieldCount; i ++ )
values[i] = rs.GetValue(i);
result.Add( values );
}
}
finally {
s.CloseConnection(conn);
}
return result;
}
其中ParamInfo为存储参数信息的结构, 定义如下:
public struct ParamInfo {
public string Name;
public object Value;
}
- 执行存储过程的方法
- sybase执行存储过程的方法
- Hibernate中执行存储过程的方法
- PLsql中执行存储过程的方法
- 执行存储过程通用方法
- prepareCall方法执行存储过程
- prepareCall()方法执行存储过程
- prepareCall方法执行存储过程
- mysql 方法或者存储过程执行慢的调试方法
- 通用的SQL和Oracle的存储过程执行方法
- 执行海量数据存储过程的函数方法
- delphi,odac执行存储过程的正确和简单方法
- perl 执行oracle存储过程,sql的方法
- PL/SQL中执行存储过程的方法
- 存储过程的执行权限
- 执行oracle的存储过程
- [MSSQL]sql 存储过程定时执行方法
- 利用exec方法执行存储过程示例
- IIS安装与配置
- 第十七章 使用Log4J进行日志操作(书摘)
- SWF文件结构大解剖
- 细读《Effective C++》之八
- 我们该吃青春饭吗?
- 执行存储过程的方法
- 继续学日语
- DotNet中用到的加密算法总结
- pku3224
- Life or Candle -->众善奉行,诸恶莫作
- 正视自己
- B样条的一个问题的试探
- 读网070511
- 列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息