首页 > 其他分享 >【机房重构之积累】

【机房重构之积累】

时间:2022-10-17 17:37:02浏览次数:66  
标签:积累 重构 Dim Text Entity 机房 Trim New card


前言:

进入个人机房重构有一段时间了,这次的机房收费系统加入了七层,应用vb.net语言等等,学习了新的东西,这篇文章主要讲vb.net在机房这个系统的小知识。本篇主要介绍四个知识点:

核心:

  (一)、传参与传实体

          在机房重构开始的时候,一直是传实体,但是实体和值所占的空间可是差的很多。

  :什么是传实体呢?在机房个人重构的时候,我们定义了一个实体层,在里面,我们写好了属性和方法:



我们需要更新的是卡表,充值表,学生表,这样就需要我们传实体比较好。


UI层


Dim Fifregister As New Facade.FRegister
Dim card As New Entity.ECard
Dim student As New Entity.EStudent
Dim recharge As New Entity.ERecharge


'卡表
card.CardNo = txtCardId.Text.Trim()
card.Nvr_Cash = txtCash.Text.Trim()
card.Type = cmbType.Text.Trim()
card.Riqi = Date.Now.ToString("yyyy - MM - dd")
card.Time = DateTime.Now.ToString("HH:mm:ss")
card.CheckStatus = True
card.UserStatus = True
'card.UserID =
'学生表
student.StudenID = txtStudentId.Text.Trim()
student.StudentName = txtName.Text.Trim()
student.Sex = cmbSex.Text.Trim()
student.Department = txtDepartment.Text.Trim()
student.Major = txtMajor.Text.Trim()
student.Grade = cmbGrade.Text.Trim()
student.classes = cmbClass.Text.Trim()
student.Explain = txtExplain.Text.Trim()

'充值表
recharge.CardNo = txtCardId.Text.Trim()
recharge.CheckStatus = False
recharge.Recharge = txtCash.Text.Trim()
recharge.RechargeDate = Date.Now.ToString("yyyy - MM - dd")
recharge.RechargeTime = DateTime.Now.ToString("HH:mm:ss")

Dim flag2 As String
flag2 = Fifregister.Ifregister(card)
If flag2 = True Then
Dim flag1 As String
flag1 = Fifregister.FAdd(card, student, recharge)
End If

B层 :这个是B层的一个方法,注意下面的Byval传的实体


Public Class BRegister
Public Function Ifuse(ByVal cardno As Entity.ECard) As String
Dim Iregister As IDAL.IRegister
Iregister = Factory.DataAccess.RegisterCardInfo

Dim myTable As New DataTable
myTable = Iregister.ifregister(cardno)


If myTable.Rows.Count = 0 Then

MsgBox("注册成功!")

Else
MsgBox("该卡号已经注册过,请重新注册!!")
End If

Return True
End Function

外观层、D层、接口层都是实体。


这是D层的一个方法,在赋值的时候,直接用实体.方法


Public Function ifregister(cardno As Entity.ECard) As DataTable Implements IDAL.IRegister.ifregister
Dim Sql As String
Dim table As New DataTable '中间变量用于存储从数据库中 查找信息
'声明并实例化参数数组
Dim sqlParams As SqlParameter() = {New SqlParameter("@Chr_CardNo", cardno.CardNo),
New SqlParameter("@Chr_UserStatus", cardno.UserStatus)}
'调用SQL语句查询
Sql = "select * from T_Card where Chr_CardID = @Chr_CardNo and Bit_UserStatus = @Chr_UserStatus"
'调用SqlHlper类中的ExecSelect()方法来执行查询,并获取返回值
Dim mylist As New List(Of Entity.ECard)
table = helper.ExecSelect(Sql, CommandType.Text, sqlParams)
Return table
End Function

传参数:(管理用户为例)—判断用户级别


Private Sub cmbUserLevel_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbUserLevel.SelectedIndexChanged
'根据用户级别加载信息
Dim userlevel As String
userlevel = cmbUserLevel.Text.Trim
Dim fac As New Facade.FManageUser
Dim mylist As List(Of Entity.ELogin)
mylist = fac.Show(userlevel)
If mylist.Count = 0 Then
MsgBox("没有该用户级别信息,请查询其他信息")
Else
dgvUserInfo.DataSource = mylist

End If

注意:userlevel定义的是字符串


同样的外观层、B层、D层传递的也是参数,


下面外观代码:


Public Function Show(ByVal level As String) As List(Of Entity.ELogin)
Dim bshow As New BLL.BManageUser
Dim flag As List(Of Entity.ELogin)

flag = bshow.Show(level)
Return flag

那么,在D层会如何运用呢?


在赋值的时候直接写这个参数就行了!


Public Function Show(level As String) As List(Of Entity.ELogin) Implements IDAL.IManagerUser.Show
Dim sql As String
Dim sqlparams As SqlParameter() = {New SqlParameter("@Chr_Level", level)}
Dim table As New DataTable
sql = "select * from T_User where Chr_Level=@Chr_Level "
table = helper.ExecSelect(sql, CommandType.Text, sqlparams)
Dim mylist As List(Of Entity.ELogin)
mylist = Convert.convertToList(Of Entity.ELogin)(table)
Return mylist

在重构的时候,自己对这个并不是很理解,所以总结出来,仅供参考,希望对你有帮助!




   (二)、byval与Byref

 在开始敲机房的时候,并没有多想,一直都用的是byval,自己也不清楚,之后通过查资料才发现:原来我们之前接触过:

我们先来回顾一下传值和传地址

传值:我们传递给函数是一个单纯的数值过去)按值传递参数时,传递的只是变量的 副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身

传地址:按地址传递参数时,过程用变量的内存地址去访问实际变量的内容。

为什么要回顾这个呢?今天我们讲到的Byval和Byref就和这个有关

Byval:按值传递

Byref:按地址传递

下面这篇文章介绍的很详细!

​http://www.111cn.net/net/vb-net/58999.htm​

【机房重构之积累】_赋值

    (三)、sub与function

对于菜鸟的我,在开始个人重构的时候,一直用的是Function


sub:过程,不返回数值

function:函数,有返回数值


【机房重构之积累】_sql_02


   (四)、属性、方法的创建


Private _CardNo As String




Public Property CardNo() As String
Get
Return _CardNo
End Get
Set(value As String)
_CardNo = value
End Set
End Property

总结:


在路上的我,加油着!

标签:积累,重构,Dim,Text,Entity,机房,Trim,New,card
From: https://blog.51cto.com/u_15586641/5763679

相关文章

  • 你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!
    来源:https://www.cnblogs.com/yjmyzz/p/refactor-design-pattern-using-java8.htmljava8中提供的很多新特性可以用来重构传统设计模式中的写法,下面是一些示例:一、策略模......
  • Kruskal重构树 学习笔记
    我们回顾一下最小与最大生成树的性质:对于一张图的最小生成树,原图中任意两个节点中任意一条路径的边权最大值的最小值为生成树中节点路径间边权的最大值。最大生成树则相反......
  • 别再建机房了!企业数据也要人云亦“云”
    别再建机房了!企业数据也要人云亦“云”​如今是网络信息数据大发展的时代,网络信息数据成为众多企业设置发展策略的重要依据,中小型企业通过收集,处理信息数据来调整自己的生产......
  • 《重构》系统篇
    前言不要指望系统是好的,代码重构是第一步,但是系统重构是目的,从系统维度看重构的战略和战术设计。重构的价值:业务和产品是不感知重构的,上级领导可能是未知的,所以重构难以......
  • 结合springboot条件注入@ConditionalOnProperty以及@ConfigurationProperties来重构优
    @ConditionalOnProperty实现按需注入bean短信工具类SmsUtilzhenghe-common是一个基础包。SmsUtil坐落在zhenghe-common里。先看看Smsutil的面目。packagecom.emax......
  • RAID5 IO处理之重构代码详解
    1作用当阵列降级时,可以添加一块新盘进行重构,以恢复阵列的冗余。2发起重构可以通过以下命令md并发起重构:mdadm-C/dev/md0--force--run-l5-n3-c128K/dev/sd......
  • 图扑数字孪生数据中心机房,助力产业绿色低碳转型
    前言随着“东数西算”工程和新基建的加速落地,数智化技术正逐渐渗透到各领域。但随着数据中心建设规模的逐步扩大,必然带来能耗的大幅增长和机房设备数量的不断扩充,传统机房......
  • 读书笔记-《纳瓦尔原理》第一章 积累财富
    如何不靠运气致富-Wealth赚钱不是一件想做就能做的事情,而是一门需要学习的技能。“赚钱”这门技巧跟工作的努力程度没什么必然联系。即使每周在餐厅拼命工作80个小时,也......
  • 养成记录和积累的好习惯
    养成记录和积累的好习惯前言:工作后一直在反思,为什么明明自己花了好多时间学习,但总是没有什么成系统的学习成果产出?后来想了一个,就是自己的知识积累没有系统,知识点都是处......
  • 谷歌数据中心爆炸!长沙荷花园电信机房着火!全球数据中心火灾事件汇总
    谷歌数据中心爆炸!长沙荷花园电信机房着火!全球数据中心火灾事件汇总谷歌数据中心爆炸---  造价330亿,3人受伤    综合美媒消息,当地时间2020年8月8日中午,一处位于美国......