程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 淺談Asp.net多層架構中的變量引用與傳遞

淺談Asp.net多層架構中的變量引用與傳遞

編輯:關於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();
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved