日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2025/6/15 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据增删改查之三层架构(理解三层续) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

下面是畫的關(guān)于數(shù)據(jù)的增刪改查這個(gè)小例子的包圖、類圖和時(shí)序圖。

?

包圖。

?

類圖。

時(shí)序圖。

用戶注冊(cè)。

用戶刪除。

用戶查詢,一個(gè)是查選全部用戶,一個(gè)是查詢一個(gè)用戶對(duì)象。

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

用戶注冊(cè)的代碼,如下所示:

實(shí)體層代碼。

  • 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??
  • ????'用戶編號(hào)屬性???
  • ????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??
  • ????'用戶注冊(cè)日期??
  • ????Public?Property?UserRegDate()?As?DateTime??
  • ????????Get??
  • ????????????Return?userRegDate??
  • ??
  • ????????End?Get??
  • ????????Set(ByVal?value?As?DateTime)??
  • ????????????userRegDate?=?value??
  • ????????End?Set??
  • ????End?Property??
  • ????'用戶合法標(biāo)致??
  • ????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??
  • ????'數(shù)據(jù)庫(kù)連接字符串??
  • ????Dim?connStr?As?String?=?"Data?Source=192.168.24.63;Initial?Catalog=PCharge_Sys;User?ID=sa;Password=sa"??
  • ????'''?<summary>??
  • ????'''?添加一條用戶信息??
  • ????'''?</summary>??
  • ????'''?<param?name="EntityUserInfo">一個(gè)用戶對(duì)象</param>??
  • ????'''?<returns>是否添加成功</returns>??
  • ????'''?<remarks>2012年1月19號(hào)?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>??
  • ????'''?用戶注冊(cè),并對(duì)用戶的輸入加以判斷。??
  • ????'''?</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("輸入不能為空!請(qǐng)重新輸入!")??
  • ????????Else??
  • ????????????If?Not?IsNumeric(txtUserID.Text)?Then??
  • ????????????????MsgBox("輸入的編號(hào)因?yàn)閿?shù)字!請(qǐng)重新輸入!")??
  • ????????????End?If??
  • ????????????If?Not?IsDate(txtUserRegDate.Text)?Then??
  • ????????????????MsgBox("輸入的注冊(cè)日期請(qǐng)為日期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??
  • 上面是在數(shù)據(jù)庫(kù)表中插入一條記錄,其他的刪除和修改,查詢類似,就是DAL和BLL層返回值可能不同。

    DAL層刪除查詢代碼,保存?zhèn)浜笥谩?/span>

  • ??'''?<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>??
  • ????'''?獲得一個(gè)用戶的信息。??
  • ????'''?</summary>??
  • ????'''?<param?name="UserID"></param>??
  • ????'''?<returns>一個(gè)用戶的對(duì)象</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??

  • ?


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

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。