VB.NET—Bug调试(参数话查询、附近语法错误)
目录
前言:
BUG是什么!
事情的经过:
过程:
错误一:
错误二:
总结:
前言:
BUG是什么!
在计算机科学中,BUG是指程序中的错误或缺陷,它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题,这些问题可能会导致程序崩溃、产生不正确的结果或行为,或者导致程序无法正常工作。
在软件开发中,bug是一种常见的问题,正所谓无bug不成方圆,哈哈,程序时常可能会犯错误,而且程序的复杂性也回增加出现错误的可能性。为了尽可能得减少bug的数量,开发人员通常会使用各种技术和工具来进行代码测试和调试,以确保程序的正确性和稳定性。同时,用户也可以用过反馈bug来帮助开发人员改进程序,提高质量和可能性。
出现bug也是程序员非常抵触的事情,可能出现一个bug需要花好长时间来解决,甚至好几天来解决,如果在即将上市的产品上,出现bug这将会给公司带来一笔巨大的损失,因此程序会在上市之前进行反复测试。
事情的经过:
在进行机房重构的时候,出现了很多的bug,导致程序无法运行,卡在程序的主入口,都说断点调试是程序员的一大利器,为什么这么说,因为它可以帮程序员快速的定位问题,减少调试的时间并提高准确性,此外,断点调试还可以帮助程序员深入理解程序的执行过程和内部实现,从而提高程序员的技术水平和代码质量。但是通过断点调试,开始也是没有找到解决的办法,错误就在眼前,但是找不到它。着实着急。
过程:
错误一:
1.添加用户启动失败窗体
在进行添加用户的时候,突然报出图片中的错误,根据错误提示,可以清晰的看出应该是数据库的代码出现问题!通过断点调试进一步的将问题往下深挖,证明是连接数据库的语句出现了问题,期间不断尝试将数据库中的语句进行替换,但是废了九牛二虎之力也没找到,挠破了头皮也是想不到问题出自在哪,开始质疑报错的错误是不是有问题,最终在心里的斗争下,我将所有与数据库打交道的代码都重写了一遍,不写不知道,一写就出现问题,系统最终能正常运行,通过撤回将错误代码浮现出来,通过仔细对比发现问题的根源真是让人难找。大家可以看下代码,我将错误的代码注释在下面了,不仔细查看还是看不出来,括号是中文的括号,这才导致附近语法有错误,通过这件事也是告诉我们书写的总要性,往往不注意的细节,都会让自己陷入两难的境地。
1.2数据库中的部分代码
Dim sql As String "INSERT INTO User_info(UserNo,Password)VALUES(@UserNo,@Password)"'Dim sql1 As String "INSERT INTO User_info(UserNo,Password)VALUES (@UserNo,@Password)Dim cmd As New SqlCommand(sql,conn)cmd.Parameters.Add(New SqlParameter("@UserNo",updateuser.UserNo))cmd.Parameters.Add(New SqlParameter("@Password",updateuser.Password))reader cmd.ExecuteReader()
1.3添加用户启动成功窗体
错误二:
1.充值启动失败窗体
这个错误,跟上面的错误提示完全不一样,对于这个错误开始没有进行仔细考虑,不管三七二十一,直接上手对数据库的代码进行整改,运行之后改,改完之后运行,经过几轮的反复,问题依然没有解决,开始心烦气躁......,因为自己这个是分为UI层,BLL层,DAL层,自己也是局限在此,事实证明不去理解问题,这样只会是事半功倍,报出错误信息,一定有解决的办法,这三层经过仔细的筛选找到问题的本质了。代码如下,下面代码是正确的,一开始我将调用的方法写在最上面,这样会照成什么问题,没有赋值就开始调用, 所以提示错误提示需要参数‘@CardNo',但未提供参数,将调用的方法放在赋值的下面,这样就可以成功启动。
1.2数据传输的过程
1.3UI层的部分代码
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickTryDim UserFull As New Entity.UserRechargeDim aFull As New BLL.UserBLLUserFull.CardNo = TxtUserNo.TextUserFull.Recharge = TxtMoney.TextUserFull.RechargeDataTime = TxtTime.TextaFull.UserFullBAL(UserFull)Catch ex As ExceptionMessageBox.Show(ex.Message.ToString)End TryEnd Sub
End Class
1.4充值启动成功窗体
总结:
书写问题:
1.统一用英文书写2.禁止切换中英文去编写代码
3.严格要求编码的规范,控制代码质量
代码问题:
1.仔细阅读提示的错误信息2.使用调试工具
3.编写完成对每段带代码逐一检查
4.寻求帮助(互联网、高人解决)
相关文章:

VB.NET—Bug调试(参数话查询、附近语法错误)
目录 前言: BUG是什么! 事情的经过: 过程: 错误一: 错误二: 总结: 前言: BUG是什么! 在计算机科学中,BUG是指程序中的错误或缺陷,它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题,这些问题…...

武汉凯迪正大—锂电池均衡维护仪
产品概况 KDZD885C 电池容量平衡测试系统,主要用于锂电池箱充放电测试及均衡维护,解决锂电池包单芯电压不均衡的痛点,用于快速解决锂电池电压不一致的难题,适用于各锂电池模组电压等级,集单芯放电,充电,均…...
解决服务器中的mysql连接不上Navicat的问题脚本
shell标本,快速解决服务器中的mysql连接不上Navicat的问题 在Linux服务器开发中,mysql的配置文件一般是只允许本地连接 所以想用Navicat进行连接,就需要修改配置和mysql中用户访问表的权限 为了方便,写成了shell脚本 #!/bin/bas…...
Git Flow的简单使用
目录 系列文章目录 一、新建feture下的分支 二、合并分支且删除当前分支 注意:这两个命令都得是在develop分支下进行 一、新建feture下的分支 xxx为自己命名的分支 git flow feature start xxx 二、合并分支且删除当前分支 需要先提交一下当前分支的代码&…...

LOWORD, HIWORD, LOBYTE, HIBYTE的解释
文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为 0x78 0x56 0x34 0x120x78在低地址,0x12在高地址 程序输出 #include <stdio.h> #include <string.h> #include<windows.h>int main() {int a 0x12345…...

Centos7.9用rancher来快速部署K8S
什么是 Rancher? Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kube…...

NSSCTF第12页(2)
[CSAWQual 2019]Unagi 是xxe注入,等找时间会专门去学一下 XML外部实体(XXE)注入 - 知乎 【精选】XML注入学习-CSDN博客 【精选】XML注入_xml注入例子-CSDN博客 题目描述说flag在/flag下 发现有上传点,上传一句话木马试试 文件…...

基于单片机的电源切换控制器设计(论文+源码)
1.系统设计 在基于单片机的电源切换控制器设计中,系统功能设计如下: (1)实现电源的电压检测; (2)如果电压太高,通过蜂鸣器进行报警提示,继电器进行切换,使…...
机器学习-特征选择:使用Lassco回归精确选择最佳特征
机器学习-特征选择:使用Lassco回归精确选择最佳特征 一、Lasso回归简介1.1 Lasso回归的基本原理1.2 Lasso回归与普通最小二乘法区别二、特征选择的方法2.1 过滤方法2.2 包装方法2.3 嵌入方法三、Lasso的特征选择流程3.1 数据预处理3.2 划分训练集和测试集3.3 搭建Lasso回归模型…...

uniapp开发ios上线(在win环境下使用三方)
苹果 1、win环境下无法使用苹果os编译器所以使用第三方上传工具,以下示例为 初雪云 (单次收费,一元一次) 初雪云(注册p12证书):https://www.chuxueyun.com/#/pages/AppleCertificate 苹果开发者…...

【深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (六)
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

景联文科技:驾驭数据浪潮,赋能AI产业——全球领先的数据标注解决方案供应商
根据IDC相关数据统计,全球数据量正在经历爆炸式增长,预计将从2016年的16.1ZB猛增至2025年的163ZB,其中大部分是非结构化数据,被直接利用,必须通过数据标注转化为AI可识别的格式,才能最大限度地发挥其应用价…...
OpenCV+特征检测
检测 函数cv.cornerHarris()。其参数为: img 输入图像,应为灰度和float32类型blockSize是拐角检测考虑的邻域大小ksize 使用的Sobel导数的光圈参数k 等式中的哈里斯检测器自由参数 import numpy as np import cv2 as cv filename chessboard.png img…...

Excel-lookup函数核对两个表格的数据匹配
需求描述:把右侧表格里的成绩按照姓名匹配到左表中 D11函数为LOOKUP(1,0/($H$11:$H$26A11),I$11:I$26) 然后下拉赋值公式,那么得到的值就都是对应的...

Vue 简单的语法
1.插值表达式 1.插值表达式的作用是什么? 利用表达式进行插值,将数据渲染到页面中; 2.语法结构? {{表达式}} 3.插值表达式的注意点是什么? (1)使用的数据要存在,在data中&…...

华为ensp:vrrp双机热备负载均衡
现在接口ip都已经配置完了,直接去配置vrrp r1上192.168.1.100 作为主 192.168.2.100作为副 r2上192.168.1.199 作为副 192.168.2.100作为主 这样就实现了负载均衡,如果两个都正常运行时,r1作为1.1的网关,r2作为2.1网关…...

postswigger 靶场(CSRF)攻略-- 1.没有防御措施的 CSRF 漏洞
靶场地址: What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy (portswigger.net)https://portswigger.net/web-security/csrf 没有防御措施的 CSRF 漏洞 题目中已告知易受攻击的是电子邮件的更改功能,而目…...

Langchain知识点(下)
原文:Langchain知识点(下) - 知乎 代码汇总到: https://github.com/liangwq/Chatglm_lora_multi-gpu/tree/main/APP_example/langchain_keypointgithub.com/liangwq/Chatglm_lora_multi-gpu/tree/main/APP_example/langchain_…...

百度飞浆环境安装
前言: 在安装飞浆环境之前得先把pytorch环境安装好,不过关于pytorch网上教程最多的都是通过Anaconda来安装,但是Anaconda环境安装容易遇到安装超时导致安装失败的问题,本文将叫你如何通过pip安装的方式快速安装,其实这…...

云效流水线docker部署 :node.js镜像部署VUE项目
文章目录 引言I 流水线配置1.1 项目dockerfile1.2 Node.js 镜像构建1.3 docker 部署预备知识引言 云效流水线配置实现docker 部署微服务项目:https://blog.csdn.net/z929118967/article/details/133687120?spm=1001.2014.3001.5501 配置dockerfile-> 镜像构建->docke…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...