技术开发 频道

在nhibernate中执行SQL语句

4. 示例

下面给出一个在nhibernate中执行SQL语句的方法ExecuteSQL。

public IList ExecuteSQL( string query ) { IList result = new ArrayList(); ISessionFactoryImplementor s = (ISessionFactoryImplementor)cfg.BuildSessionFactory(); IDbCommand cmd = s.ConnectionProvider.Driver.CreateCommand(); cmd.CommandText = query; 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; }

返回结果与nhibernate的query的结果保存一致(返回object[]的情况)。
0
相关文章