浅谈Asp.net多层架构中的变量引用与传递
利用这个时间仔细研究了一下Asp.net的多层架构,主要参考的是 Wrox 的一本<.Net WebSite Programming Problem-Design-Solution>,个人觉得这本书写的不错。面向有一定.net基础的开发人员,刚开始看起来可能觉得很难懂,但是仔细研究一下会发现,这本书是一本面向工程应用的优秀参考手册。
Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。在这里面有一个地方值得注意,通过对一个函数的重载可以实现调用不同功能的存储过程。以下代码示例:
| protected int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{ int result; Connection.Open(); SqlCommand command = BuildIntCommand( storedProcName, parameters ); rowsAffected = command.ExecuteNonQuery(); result = (int)command.Parameters["ReturnValue"].Value; Connection.Close(); return result; } protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters ) { SqlDataReader returnReader; Connection.Open(); SqlCommand command = BuildQueryCommand( storedProcName, parameters ); command.CommandType = CommandType.StoredProcedure; returnReader = command.ExecuteReader(); //Connection.Close(); return returnReader; } protected DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName ) { DataSet dataSet = new DataSet(); Connection.Open(); SqlDataAdapter sqlDA = new SqlDataAdapter(); sqlDA.SelectCommand = BuildQueryCommand( storedProcName, parameters ); sqlDA.Fill( dataSet, tableName ); Connection.Close(); return dataSet; } protected void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName ) { Connection.Open(); SqlDataAdapter sqlDA = new SqlDataAdapter(); sqlDA.SelectCommand = BuildIntCommand( storedProcName, parameters ); sqlDA.Fill( dataSet, tableName ); Connection.Close(); } |
- 本文关键词:

