Asp.net三层结构中的变量引用与传递_[Asp.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(); 
}