日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据增删改查之三层架构(理解三层续)

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据增删改查之三层架构(理解三层续) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先是畫的圖,感覺把圖畫完了,工程就完成了一大半,前提是畫的思路是對的。還是在理解三層。

下面是畫的關于數據的增刪改查這個小例子的包圖、類圖和時序圖。

?

包圖。

?

類圖。

時序圖。

用戶注冊。

用戶刪除。

用戶查詢,一個是查選全部用戶,一個是查詢一個用戶對象。

用戶修改。也就是查詢、刪除和增加。

用戶注冊的代碼,如下所示:

實體層代碼。

  • Public?Class?UserInfo??
  • ????Private?userID?As?Integer??
  • ????Private?userName?As?String??
  • ????Private?userActor?As?String??
  • ????Private?userPwd?As?String??
  • ????Private?userRegDate?As?DateTime??
  • ????Private?userFlag?As?Boolean??
  • ????'用戶編號屬性???
  • ????Public?Property?UserID()?As?Integer??
  • ????????Get??
  • ????????????Return?userID??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?Integer)??
  • ????????????userID?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶姓名屬性??
  • ????Public?Property?UserName()?As?String??
  • ????????Get??
  • ????????????Return?userName??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?String)??
  • ????????????userName?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶角色??
  • ????Public?Property?UserActor()?As?String??
  • ????????Get??
  • ????????????Return?userActor??
  • ??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?String)??
  • ????????????userActor?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶密碼??
  • ????Public?Property?UserPwd()?As?String??
  • ????????Get??
  • ????????????Return?userPwd??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?String)??
  • ????????????userPwd?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶注冊日期??
  • ????Public?Property?UserRegDate()?As?DateTime??
  • ????????Get??
  • ????????????Return?userRegDate??
  • ??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?DateTime)??
  • ????????????userRegDate?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶合法標致??
  • ????Public?Property?UserFlag??
  • ????????Get??
  • ????????????Return?userFlag??
  • ??
  • ????????End?Get??
  • ????????Set(ByVal?value)??
  • ????????????userFlag?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ??
  • End?Class??

  • DAL層代碼。

  • Imports?System.Data.SqlClient??
  • ??
  • ??
  • ??
  • 'DAL包中的DALuser類。??
  • Public?Class?DALUser??
  • ????'數據庫連接字符串??
  • ????Dim?connStr?As?String?=?"Data?Source=192.168.24.63;Initial?Catalog=PCharge_Sys;User?ID=sa;Password=sa"??
  • ????'''?<summary>??
  • ????'''?添加一條用戶信息??
  • ????'''?</summary>??
  • ????'''?<param?name="EntityUserInfo">一個用戶對象</param>??
  • ????'''?<returns>是否添加成功</returns>??
  • ????'''?<remarks>2012年1月19號?20:31</remarks>??
  • ????Public?Function?DALUserAdd(ByVal?EntityUserInfo?As?Entity.UserInfo)?As?Boolean??
  • ????????Dim?sql?As?String?=?"Insert?into?UserInfo(UserID,UserName,UserActor,UserPwd,UserRegDate,UserFlag)"?_??
  • ???????????????????????????&?"?values?(@UserID,@UserName,@UserActor,@UserPwd,@UserRegDate,@UserFlag)?"??
  • ??
  • ????????Dim?conn?As?SqlConnection?=?New?SqlConnection(connStr)??
  • ??
  • ??
  • ????????Dim?cmd?As?SqlCommand?=?New?SqlCommand(sql,?conn)??
  • ????????Dim?sqlParam?As?New?SqlParameter??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserID",?SqlDbType.Int)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserID??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserName",?SqlDbType.VarChar)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserName??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserActor",?SqlDbType.VarChar)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserActor??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserPwd",?SqlDbType.VarChar)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserPwd??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserRegDate",?SqlDbType.DateTime)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserRegDate??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????sqlParam?=?New?SqlParameter("@UserFlag",?SqlDbType.Bit)??
  • ????????sqlParam.Value?=?EntityUserInfo.UserFlag??
  • ????????cmd.Parameters.Add(sqlParam)??
  • ??
  • ????????Try??
  • ????????????conn.Open()??
  • ????????????Return?cmd.ExecuteNonQuery()?>?0??
  • ??
  • ????????Catch?ex?As?Exception??
  • ????????????Return?False??
  • ????????End?Try??
  • ????????If?Not?IsNothing(conn)?Then??
  • ????????????conn.Close()??
  • ????????????conn?=?Nothing??
  • ????????End?If??
  • ??
  • ??
  • ????End?Function??
  • ??
  • End?Class??

  • BLL層代碼。

  • Imports?DAL??
  • ??
  • '''?<summary>??
  • '''?BLL包中的BLLUser類。??
  • '''?</summary>??
  • '''?<remarks></remarks>??
  • Public?Class?BLLUser??
  • ????'''?<summary>??
  • ????'''?插入一條用戶信息??
  • ????'''?</summary>??
  • ????'''?<param?name="EntityUserInfo"></param>??
  • ????'''?<returns></returns>??
  • ????'''?<remarks></remarks>??
  • ????Public?Function?BLLUserAdd(ByVal?EntityUserInfo?As?Entity.UserInfo)?As?Boolean??
  • ????????Dim?DALUserInfo?As?New?DAL.DALUser??
  • ??
  • ????????Return?DALUserInfo.DALUserAdd(EntityUserInfo)??
  • ????End?Function??
  • End?Class??

  • UI層代碼。

    界面層。

  • '界面層。??
  • Public?Class?UserAddForm??
  • ????'''?<summary>??
  • ????'''?用戶注冊,并對用戶的輸入加以判斷。??
  • ????'''?</summary>??
  • ????'''?<param?name="sender"></param>??
  • ????'''?<param?name="e"></param>??
  • ????'''?<remarks></remarks>??
  • ??
  • ????Private?Sub?RegisterBut_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?RegisterBut.Click??
  • ??
  • ?????????
  • ??
  • ????????If?txtUserID.Text?=?""?Or?txtUserName.Text?=?""?Or?txtUserPwd.Text?=?""?Or?txtUserRegDate.Text?=?""?Or?txtUserActor.Text?=?""?Or?txtUserFlag.Text?=?""?Then??
  • ????????????MsgBox("輸入不能為空!請重新輸入!")??
  • ????????Else??
  • ????????????If?Not?IsNumeric(txtUserID.Text)?Then??
  • ????????????????MsgBox("輸入的編號因為數字!請重新輸入!")??
  • ????????????End?If??
  • ????????????If?Not?IsDate(txtUserRegDate.Text)?Then??
  • ????????????????MsgBox("輸入的注冊日期請為日期XXXX-XX-XX格式!")??
  • ????????????Else??
  • ????????????????Dim?EntityUserInfo?As?New?Entity.UserInfo??
  • ????????????????EntityUserInfo.UserID?=?txtUserID.Text??
  • ????????????????EntityUserInfo.UserName?=?txtUserName.Text??
  • ????????????????EntityUserInfo.UserActor?=?txtUserActor.Text??
  • ????????????????EntityUserInfo.UserPwd?=?txtUserPwd.Text??
  • ????????????????EntityUserInfo.UserRegDate?=?txtUserRegDate.Text??
  • ????????????????EntityUserInfo.UserFlag?=?txtUserFlag.Text??
  • ??
  • ????????????????Dim?BLLUserInfo?As?New?BLL.BLLUser??
  • ????????????????If?BLLUserInfo.BLLUserAdd(EntityUserInfo)?Then??
  • ????????????????????MsgBox("添加成功!")??
  • ????????????????Else??
  • ????????????????????MsgBox("添加失敗!")??
  • ??
  • ????????????????End?If??
  • ????????????End?If??
  • ??????????????
  • ??
  • ????????End?If??
  • ??
  • ????End?Sub??
  • End?Class??
  • 上面是在數據庫表中插入一條記錄,其他的刪除和修改,查詢類似,就是DAL和BLL層返回值可能不同。

    DAL層刪除查詢代碼,保存備后用。

  • ??'''?<summary>??
  • ????'''?獲得所有用戶??
  • ????'''?</summary>??
  • ????'''?<returns>所有用戶的DataSet集合</returns>??
  • ????'''?<remarks></remarks>??
  • ????Public?Function?DALUserSelectAll()?As?DataSet??
  • ????????Dim?sql?As?String?=?"select?*?from?UserInfo"??
  • ????????Dim?conn?As?SqlConnection?=?New?SqlConnection(connStr)??
  • ????????Dim?cmd?As?SqlCommand?=?New?SqlCommand(sql,?conn)??
  • ????????Dim?dap?As?SqlDataAdapter?=?New?SqlDataAdapter(cmd)??
  • ????????Dim?ds?As?New?DataSet??
  • ??
  • ????????Try??
  • ????????????conn.Open()??
  • ????????????dap.Fill(ds)??
  • ????????????Return?ds??
  • ??
  • ????????Catch?ex?As?Exception??
  • ????????????Return?Nothing??
  • ????????Finally??
  • ????????????If?Not?IsNothing(cmd)?Then??
  • ????????????????cmd.Dispose()??
  • ????????????????cmd?=?Nothing??
  • ??
  • ????????????End?If??
  • ????????????If?Not?IsNothing(conn)?Then??
  • ????????????????conn.Close()??
  • ????????????????conn?=?Nothing??
  • ??
  • ????????????End?If??
  • ????????End?Try??
  • ????End?Function??
  • ????'''?<summary>??
  • ????'''?獲得一個用戶的信息。??
  • ????'''?</summary>??
  • ????'''?<param?name="UserID"></param>??
  • ????'''?<returns>一個用戶的對象</returns>??
  • ????'''?<remarks></remarks>??
  • ????Public?Function?DALUserGetObject(ByVal?UserID?As?Integer)?As?Entity.UserInfo??
  • ????????Dim?sql?As?String?=?"select?UserName,UserActor,UserPwd,UserRegDate,UserFlag?from?UserInfo?where?UserID=@UserID"??
  • ????????Dim?conn?As?SqlConnection?=?New?SqlConnection(connStr)??
  • ????????Dim?cmd?As?SqlCommand?=?New?SqlCommand(sql,?conn)??
  • ????????Dim?sqlParam?As?New?SqlParameter("@UserID",?SqlDbType.Int)??
  • ????????sqlParam.Value?=?UserID??
  • ????????Dim?sdr?As?SqlDataReader?=?Nothing??
  • ??
  • ????????Dim?DALEntityUserinfo?As?New?Entity.UserInfo??
  • ??
  • ????????Try??
  • ????????????sdr?=?cmd.ExecuteReader()??
  • ????????????While?sdr.Read??
  • ????????????????DALEntityUserinfo.UserID?=?UserID??
  • ????????????????DALEntityUserinfo.UserName?=?sdr.GetString(0)??
  • ????????????????DALEntityUserinfo.UserActor?=?sdr.GetString(1)??
  • ????????????????DALEntityUserinfo.UserPwd?=?sdr.GetString(2)??
  • ????????????????DALEntityUserinfo.UserRegDate?=?sdr.GetString(3)??
  • ????????????????DALEntityUserinfo.UserFlag?=?sdr.GetString(4)??
  • ??
  • ????????????End?While??
  • ????????????Return?DALEntityUserinfo??
  • ????????Catch?ex?As?Exception??
  • ????????????Return?Nothing??
  • ????????Finally??
  • ????????????If?Not?IsNothing(sdr)?Then??
  • ????????????????sdr.Close()??
  • ????????????????sdr?=?Nothing??
  • ??
  • ????????????End?If??
  • ????????????If?Not?IsNothing(cmd)?Then??
  • ????????????????cmd.Dispose()??
  • ????????????????cmd?=?Nothing??
  • ??
  • ????????????End?If??
  • ????????????If?Not?IsNothing(conn)?Then??
  • ????????????????conn.Close()??
  • ????????????????conn?=?Nothing??
  • ????????????End?If??
  • ????????End?Try??
  • ????End?Function??
  • ??
  • ????Public?Function?DALUserDel(ByVal?DALEntityUserinfo?As?Entity.UserInfo)?As?Boolean??
  • ????????Dim?sql?As?String?=?"delete?from?UserInfo?where?UserID=@UserID"??
  • ????????Dim?conn?As?SqlConnection?=?New?SqlConnection(connStr)??
  • ????????Dim?cmd?As?SqlCommand?=?New?SqlCommand(sql,?conn)??
  • ????????Dim?sqlParam?As?New?SqlParameter("@UserID",?SqlDbType.Int)??
  • ????????sqlParam.Value?=?DALEntityUserinfo.UserID??
  • ????????Try??
  • ????????????conn.Open()??
  • ????????????Return?cmd.ExecuteNonQuery()?>?0??
  • ??
  • ????????Catch?ex?As?Exception??
  • ????????????Return?False??
  • ????????Finally??
  • ????????????If?Not?IsNothing(cmd)?Then??
  • ????????????????cmd.Dispose()??
  • ????????????????cmd?=?Nothing??
  • ??
  • ????????????End?If??
  • ????????????If?Not?IsNothing(conn)?Then??
  • ????????????????conn.Close()??
  • ????????????????conn?=?Nothing??
  • ??
  • ????????????End?If??
  • ??
  • ????????End?Try??
  • ????End?Function??
  • ??
  • End?Class??

  • ?


    以上只是為了理解而理解,所以做小例子,可能有很多缺陷,歡迎您指教。

    總結

    以上是生活随笔為你收集整理的数据增删改查之三层架构(理解三层续)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。