• VB.NET—Bug调试(参数话查询、附近语法错误)


    目录

    前言:

    BUG是什么!

    事情的经过:

    过程:

    错误一:

    错误二:

    总结:


    前言:

    BUG是什么!

    计算机科学中,BUG是指程序中的错误或缺陷,它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题,这些问题可能会导致程序崩溃、产生不正确的结果或行为,或者导致程序无法正常工作。
    在软件开发中,bug是一种常见的问题,正所谓无bug不成方圆,哈哈,程序时常可能会犯错误,而且程序的复杂性也回增加出现错误的可能性。为了尽可能得减少bug的数量,开发人员通常会使用各种技术和工具来进行代码测试和调试,以确保程序的正确性和稳定性。同时,用户也可以用过反馈bug来帮助开发人员改进程序,提高质量和可能性。
    出现bug也是程序员非常抵触的事情,可能出现一个bug需要花好长时间来解决,甚至好几天来解决,如果在即将上市的产品上,出现bug这将会给公司带来一笔巨大的损失,因此程序会在上市之前进行反复测试。

    事情的经过:

    在进行机房重构的时候,出现了很多的bug,导致程序无法运行,卡在程序的主入口,都说断点调试是程序员的一大利器,为什么这么说,因为它可以帮程序员快速的定位问题,减少调试的时间并提高准确性,此外,断点调试还可以帮助程序员深入理解程序的执行过程和内部实现,从而提高程序员的技术水平和代码质量。但是通过断点调试,开始也是没有找到解决的办法,错误就在眼前,但是找不到它。着实着急。

    过程:

    错误一:

    1.添加用户启动失败窗体

    在进行添加用户的时候,突然报出图片中的错误,根据错误提示,可以清晰的看出应该是数据库的代码出现问题!通过断点调试进一步的将问题往下深挖,证明是连接数据库的语句出现了问题,期间不断尝试将数据库中的语句进行替换,但是废了九牛二虎之力也没找到,挠破了头皮也是想不到问题出自在哪,开始质疑报错的错误是不是有问题,最终在心里的斗争下,我将所有与数据库打交道的代码都重写了一遍,不写不知道,一写就出现问题,系统最终能正常运行,通过撤回将错误代码浮现出来,通过仔细对比发现问题的根源真是让人难找。大家可以看下代码,我将错误的代码注释在下面了,不仔细查看还是看不出来,括号是中文的括号,这才导致附近语法有错误,通过这件事也是告诉我们书写的总要性,往往不注意的细节,都会让自己陷入两难的境地。
    1.2数据库中的部分代码

    1. Dim sql As String "INSERT INTO User_info(UserNo,Password)VALUES(@UserNo,@Password)"
    2. 'Dim sql1 As String "INSERT INTO User_info(UserNo,Password)VALUES (@UserNo,@Password)
    3. Dim cmd As New SqlCommand(sql,conn)
    4. cmd.Parameters.Add(New SqlParameter("@UserNo",updateuser.UserNo))
    5. cmd.Parameters.Add(New SqlParameter("@Password",updateuser.Password))
    6. reader cmd.ExecuteReader()

    1.3添加用户启动成功窗体

    错误二:

    1.充值启动失败窗体

    这个错误,跟上面的错误提示完全不一样,对于这个错误开始没有进行仔细考虑,不管三七二十一,直接上手对数据库的代码进行整改,运行之后改,改完之后运行,经过几轮的反复,问题依然没有解决,开始心烦气躁......,因为自己这个是分为UI层,BLL层,DAL层,自己也是局限在此,事实证明不去理解问题,这样只会是事半功倍,报出错误信息,一定有解决的办法,这三层经过仔细的筛选找到问题的本质了。代码如下,下面代码是正确的,一开始我将调用的方法写在最上面,这样会照成什么问题,没有赋值就开始调用, 所以提示错误提示需要参数‘@CardNo',但未提供参数,将调用的方法放在赋值的下面,这样就可以成功启动。
    1.2数据传输的过程

    1.3UI层的部分代码

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Try
    3. Dim UserFull As New Entity.UserRecharge
    4. Dim aFull As New BLL.UserBLL
    5. UserFull.CardNo = TxtUserNo.Text
    6. UserFull.Recharge = TxtMoney.Text
    7. UserFull.RechargeDataTime = TxtTime.Text
    8. aFull.UserFullBAL(UserFull)
    9. Catch ex As Exception
    10. MessageBox.Show(ex.Message.ToString)
    11. End Try
    12. End Sub
    13. End Class

    1.4充值启动成功窗体

    总结:

    书写问题:
    1.统一用英文书写

    2.禁止切换中英文去编写代码

    3.严格要求编码的规范,控制代码质量
    代码问题:
    1.仔细阅读提示的错误信息

    2.使用调试工具

    3.编写完成对每段带代码逐一检查

    4.寻求帮助(互联网、高人解决)
     

  • 相关阅读:
    Python学习 day03(注意事项)
    [Qt开发]当我们在开发兼容高分辨率和高缩放比、高DPI屏幕的软件时,我们在谈论什么。
    滴滴弹性云基于 K8S 的调度实践
    Vue 3 学习 源码解读
    机器学习之回归
    网络安全(黑客)自学
    海外代理IP与VPN有何区别?哪个更好?
    【Java】方法隐藏 vs 方法重写
    文档图像处理:大模型的突破与新探索
    Runtime.getRuntime().addShutdownHook
  • 原文地址:https://blog.csdn.net/weixin_59272777/article/details/134353203