vb.net 《机房收费系统》---②个人版技术总结

                  一直感觉自己没啥技术水平,在这里只写下自己这次做《机房收费系统》过程中感受最深的地方。

    这次《机房收费系统》用的语言是vb.net,真正的做完了发现vb.net实际上跟vb语言差不哪去,或许vb.net比vb语言更高级了一些吧。因为这次做系统主要脱离了原来面向过程的思想,向完全面向对象的方向靠拢,那么就用到了三层架构思想、设计模式,利用三层架构思想将每一层封装成一个类,自己干自己的活,不用去管别的层是怎么实现的;就像螺丝钉和螺丝母之间的关系,只要是符合规格任何公司产的螺丝母都可以套到螺丝钉上。  

    既然是运用三层架构的思想来实现的,那么每层的任务及三层之间的调用关系一定需要清楚。在"vb.net《机房收费系统》---①个人版思想总结"网易博客中已提到了三层之间的引用关系,这里不再详述。

    从理论上明白每层的任务,可是用代码实现的时候不免做的不合理,现在想想自己做的机房收费系统,我写的BLL层貌似只起到了传递数据的作用,B层很少进行业务逻辑判断,逻辑判断都挪到UI层了。  

    在这里想主要说说我的DAL层,DAL只提供基本的数据访问,不包含任何与业务相关的逻辑处理。DAL主要是跟数据库相连的,这里sql语句自然是少不了的,主要谈谈增、删、改、查的实现。"查"是最简单的了,而进行其他三种操作都少不了查操作.

  

"查询操作(select)":这里我暂时分了四类

①单条件查询操作(一个参数):例如"学生查看余额",利用卡号,从学生信息表中查询信息。

从U层只需传卡号的参数,D层查询语句是:

  Dim strSql As String = "select * from Student_Info where CardNo='" & stuInfo.CardNo & "'"

②时间段查询操作(两个参数):例如"金额退还信息查询",输入"起始日期"和"终止日期",利用时间段查询存在的记录信息。

从U层对日期格式及日期合理性进行判断,D层查询语句是:

 Dim sqlUserMoneyreturn As String = "select * from CardReturn_Info where returnDate between'" & dtpStartdate & "' and '" & dtpEnddate & "'"

③无条件查询操作(无参数):例如"正在值班教师",查询整张教师值班表中的信息。

从U层无需传参数,D层查询语句是:

Dim sqlTchOnworkinfo As String = "select * from teacherOnwork_Info"

④组合条件查询操作,这里我用的是sql语句拼接:例如"学生上机状态查询",利用不同的查询条件从学生上机状态表中查询记录信息。

从U层传递查询条件的参数,在D层查询语句是:

 Dim sqlStuCondition As String
        sqlStuCondition = Nothing

        If stuOnCondition.Comment1 <> "" And stuOnCondition.Comment2 = "" And stuOnCondition.Comment3 = "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                         stuOnCondition.Field1 & stuOnCondition.Operater1 & "'" & stuOnCondition.Comment1 & "'"
        ElseIf stuOnCondition.Comment1 = "" And stuOnCondition.Comment2 <> "" And stuOnCondition.Comment3 = "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field2 & stuOnCondition.Operater2 & "'" & stuOnCondition.Comment2 & "'"
        ElseIf stuOnCondition.Comment1 = "" And stuOnCondition.Comment2 = "" And stuOnCondition.Comment3 <> "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field3 & stuOnCondition.Operater3 & "'" & stuOnCondition.Comment3 & "'"
        ElseIf stuOnCondition.Comment1 <> "" And stuOnCondition.Comment2 <> "" And stuOnCondition.Comment3 = "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field1 & stuOnCondition.Operater1 & "'" & stuOnCondition.Comment1 & "' " & stuOnCondition.GroupRelationship1 & " " & stuOnCondition.Field2 & stuOnCondition.Operater2 & "'" & stuOnCondition.Comment2 & "'"
        ElseIf stuOnCondition.Comment1 = "" And stuOnCondition.Comment2 <> "" And stuOnCondition.Comment3 <> "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field2 & stuOnCondition.Operater2 & "'" & stuOnCondition.Comment2 & "' " & stuOnCondition.GroupRelationship2 & " " & stuOnCondition.Field3 & stuOnCondition.Operater3 & "'" & stuOnCondition.Comment3 & "'"
        ElseIf stuOnCondition.Comment1 <> "" And stuOnCondition.Comment2 = "" And stuOnCondition.Comment3 <> "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field1 & stuOnCondition.Operater1 & "'" & stuOnCondition.Comment1 & "' " & stuOnCondition.GroupRelationship1 & " " & stuOnCondition.Field3 & stuOnCondition.Operater3 & "'" & stuOnCondition.Comment3 & "'"
        ElseIf stuOnCondition.Comment1 <> "" And stuOnCondition.Comment2 <> "" And stuOnCondition.Comment3 <> "" Then
            sqlStuCondition = "select CardNo as '卡号',StuNo as '学号',StuName as '学生姓名',Department as '系别',onDate as '上机日期', onTime as '上机时间',Computer as '机子名' from OnLine_Info where " & _
                                          stuOnCondition.Field1 & " " & stuOnCondition.Operater1 & "'" & stuOnCondition.Comment1 & "' " & stuOnCondition.GroupRelationship1 & " " & stuOnCondition.Field2 & stuOnCondition.Operater2 & _
                                         " '" & stuOnCondition.Comment2 & "' " & stuOnCondition.GroupRelationship2 & " " & stuOnCondition.Field3 & stuOnCondition.Operater3 & "'" & stuOnCondition.Comment3 & "'"
        End If

"删除操作(delete)"

①根据某一条件,从数据库中直接删除:例如"退卡",先判断此卡是否在上机,上机则先结账;从学生信息表查询有无此卡信息,符合条件才能删除。

②从datagridview控件中删除记录,数据库中信息也要跟着删除:其实这里也是先从DataGridView控件中提取某一个字段值,根据此值从数据库中查询记录并删除的。

"修改操作(update)"

例如"充值金额",更新学生信息表中的"余额"项。

Dim strSqlStuInfo As String = "update Student_Info set Balance='" & stuInfoRecharge.Balance & "' where CardNo='" & stuInfoRecharge.CardNo & "'" '更新学生信息表的sql语句

"增加操作(insert)"

①按顺序添加表中的所有字段值:例如"添加用户信息",D层添加操作的Sql语句为

  Dim sqlUserinfoAdd As String = "insert into User_Info values('" & userinfoAdd.UserId & "','" & userinfoAdd.UserName & "','" & userinfoAdd.UserPassword & "','" & userinfoAdd.UserLevel & "')"

②只添加表中的部分字段,那么就需要指出要添加的哪个字段,并指明顺序:例如"用户登录"后,将用户信息写入工作记录表中。

 Dim sqlUserworklog As String = "insert teacherWorklog_Info(UserName,UserLevel,LoginDate,LoginTime) values('" & userWorklog.UserName & "','" & userWorklog.UserLevel & "','" & userWorklog.LoginDate & "','" & userWorklog.LoginTime & "')"  '用户上机后,将用户信息写入工作记录中的sql语句


       =========================分割线===========================


            说说自己需要改进的地方:

   ①连接数据库,我用的是配置配文件,只是会简单的运用,具体有什么深意还真没体会出来。

   ②返回值部分做的不太好,或者说我还不是很理解吧,很多地方我用的都是返回DataTable表,返回值这儿块需要近一步研究。

   ③对SqlDataAdapter 和SqlDataReader的使用我理解的也是不够深刻,系统中主要用的是SqlDataReader来逐条读取数据。

   ④对抛出异常、捕获异常部分理解不深刻。

   ⑤没有用SqlHelper、存储过程,代码自我感觉写的冗余量较大。


    


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
很抱歉,由于引用[1]中提供的是vue-quill-editor.js的使用教程,而非与vb.net的集成方法,因此无法直接回答该问题。但是,我可以提供一些相关信息来帮助你更好地了解如何在vb.net中使用vue-quill-editor。 Vue-quill-editor是一个基于Quill.js的富文本编辑器,而Quill.js本身是一个纯JavaScript库,因此可以在任何支持JavaScript的环境中使用。在vb.net中使用Vue-quill-editor,你需要将其作为一个JavaScript库引入到你的项目中,并在你的代码中调用它的API来实现富文本编辑器的功能。 具体来说,你需要在你的vb.net项目中引入Vue.js和Vue-quill-editor.js这两个JavaScript库,并在你的代码中创建一个Vue实例来初始化Vue-quill-editor组件。以下是一个简单的示例代码: ```html <!-- 引入Vue.js和Vue-quill-editor.js --> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.6/dist/vue-quill-editor.js"></script> <!-- 在HTML中添加一个容器元素,用于渲染Vue-quill-editor组件 --> <div id="editor"> <quill-editor></quill-editor> </div> <!-- 在JavaScript中创建Vue实例,并初始化Vue-quill-editor组件 --> <script> new Vue({ el: '#editor', components: { 'quill-editor': VueQuillEditor.default } }) </script> ``` 在上面的代码中,我们首先在HTML中添加了一个id为“editor”的容器元素,用于渲染Vue-quill-editor组件。然后,在JavaScript中创建了一个Vue实例,并将其绑定到“editor”元素上。最后,我们通过调用Vue-quill-editor组件的API来初始化富文本编辑器。 需要注意的是,上面的代码仅仅是一个简单的示例,实际使用中还需要根据具体的需求进行相应的配置和调整。同时,由于Vue-quill-editor是一个第三方库,其API和使用方法可能会随着版本的更新而发生变化,因此在使用时需要仔细查阅官方文档并进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值