Asp.net三層結(jié)構(gòu)中的變量引用與傳遞(2)_.Net教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:Asp.Net發(fā)送電子郵件程序一、 asp.net 1.0及.net1.1中的做法(利用CDOSYS消息組件發(fā)送電子郵件): 代碼如下: usingSystem; usingSystem.Web.Mail; /// summary /// 用到的類(lèi)主要位于System.Web.Mail命名空間下 /// /summary publicclassSendMail { publicSendMail() { } ///summary
道理很簡(jiǎn)單,一看就懂。對(duì)于以后的操作有好處的。
其次是要建立邏輯層,這個(gè)邏輯層基本上就是實(shí)例化數(shù)據(jù)層DataCore之后為表示層返回一些DataSet,DataReader之類(lèi)或是執(zhí)行一些insert,update,delete之類(lèi)語(yǔ)句。這個(gè)邏輯層也是為了區(qū)分整個(gè)Project下面不同功能模塊。比如說(shuō)用戶(hù)模塊起名叫做UserModel.cs,新聞模塊叫做NewsModel.cs之類(lèi)。邏輯層的另一個(gè)好處就是可以為表示層建立可以多次實(shí)例化的同一個(gè)對(duì)象或是方法。比如說(shuō)User類(lèi),通過(guò)ID或是Username 查詢(xún)并建立的對(duì)象可以被表示層多次調(diào)用。
最后是表示層,表示層的功能就是完成頁(yè)面邏輯。主要是接受客戶(hù)端數(shù)據(jù)然后經(jīng)過(guò)簡(jiǎn)單整合和判斷,傳遞給邏輯層處理。同樣,接收邏輯層傳遞來(lái)的Dataset或DataReader,表示在前臺(tái)頁(yè)面。
數(shù)據(jù)在各個(gè)層次之間的關(guān)系相對(duì)獨(dú)立,但是又相對(duì)連續(xù)。
獨(dú)立性:
對(duì)于表示層之外的幾個(gè)層,都可以把單個(gè)的對(duì)象或是方法直接拿出來(lái)放到其他工程中。因?yàn)槊總(gè)曾都是為了實(shí)現(xiàn)模型中獨(dú)立的功能而完成的。因?yàn)樵陬?lèi)似工程中的應(yīng)用基本上不用太大改動(dòng),特別是一些相對(duì)更加原始的層,在這個(gè)示例中的DataCore就是一個(gè)典型的例子。
連續(xù)性:
數(shù)據(jù)在傳遞過(guò)程中有較強(qiáng)的連續(xù)性。舉一個(gè)例子,在表示層中有這樣一個(gè)根據(jù)Session中Userid返回一個(gè)Dataset,原本我是這樣寫(xiě)的:
表示層:
DataSet UserInforRow = ObjectUser.GetUserInfor(Int32.Parse(Session["UserId"].ToString()));
邏輯層:
public DataSet GetUserInfor(int UserID) { SqlParameter[] parameters ={new SqlParameter("@UserID",SqlDbType.Int,4)}; parameters[0].Value = UserID; using(DataSet UserInfor = RunProcedure("GetUserInfor",parameters,"UserInfor")) { return UserInfor; } } |
這樣可以編譯通過(guò),但是在執(zhí)行的時(shí)候提示錯(cuò)誤,類(lèi)型不匹配,語(yǔ)法上面沒(méi)有錯(cuò)誤。
但是錯(cuò)誤出在,表示層傳進(jìn)來(lái)的是一個(gè)Int32,在Sqlparameter中確是一個(gè)Int,4,本來(lái)以為這樣的變量類(lèi)型都是在每一個(gè)層次中相對(duì)獨(dú)立的,但是當(dāng)他們之間傳遞數(shù)據(jù)的時(shí)候,出現(xiàn)了問(wèn)題。
分享:Asp.Net編程基礎(chǔ)經(jīng)驗(yàn)技巧總結(jié)1.主要命名空間: %@ImportNamespace=System.Data%處理數(shù)據(jù)時(shí)用到 %@ImportNamespace=System.Data.ADO%使用ADO.net;時(shí)用到 %@ImportNamespace=System.Data.SQL%SQLServer數(shù)據(jù)庫(kù)專(zhuān)用 %@ImportNamespace=System.Data.XML%不用看處理XML用到 %@ImportName
相關(guān).Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 如何解決CSV字段數(shù)據(jù)的雙引號(hào)問(wèn)題
- ASP.NET學(xué)習(xí)篇(4)——服務(wù)器端的控件
- asp.net搜索關(guān)鍵詞高亮顯示函數(shù)
- 模板無(wú)憂(yōu):在.NET開(kāi)發(fā)中靈活使用TreeView控件
- 三層架構(gòu)各層間的訪(fǎng)問(wèn)過(guò)程
- 基于Unity容器中的對(duì)象生存期管理分析
- 如何用asp.net程序備份或還原SQLServer
- 淺析asp.net中數(shù)據(jù)校驗(yàn)部分的封裝與應(yīng)用
- 在ASP.NET中連接SQL Server的簡(jiǎn)單方法
- GIS開(kāi)發(fā)隨筆--GIS技術(shù)的一點(diǎn)理解和MapNet控件試驗(yàn)
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-Asp.net三層結(jié)構(gòu)中的變量引用與傳遞(2)。