美食攻略 | 2024年05月12日 14:16:30 | 阅读:4716
优化一:在登陆界面不允许输入单引号:
今天在优化的时候听齐智说学生的登陆界面不可以输入单引号,于是我就试了试果然只要输入单引号,我们的程序就会出错,但是除了单引号之后的其他符号都可以输入,但是为什么不能输入单引号,最后在师傅的博客中找到了这个错误叫做:sql注入
防止SQL注入:在用户名前面加上一个’,就会提示错误,这个错误就是SQL注入。
再解决这个问题之前,先了解一下什么是SQL注入:
但是我们在程序中可以用代码来限制用户输入,不允许用户在文本框中输入单引号具体实现的代码:
解决办法:(就目前水平)限制用户名只能输入数字,大小写字母和删除键,其他输入均被视为无效输入。
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
优化二:将”添加窗体”中表示时间的普通文本控件变为专门用来表示时间的时间控件。
具体的添加方式:
工程—–部件——-MicrosoftWindowsCommonControls-2.6.0→应用→确定
与数据库结合(时间格式):
DTPicker1.CustomFormat=“yyyy.mm.dd”
写入判断条件代码:
IfDTBornData.Value>DTRudate.ValueThen
msgbox"出生日期必须早于入校时间",vbOKCancel+vbExclamation,"警告"
IfDTBornData.MaxDate<DTBornData.ValueThen
msgbox"根据您填写的出生日期,您还没有出生!",vbOKOnly+vbExclamation,"警告"
IfDTRudate.MaxDate<DTRudate.ValueThen
msgbox"根据您填写的入校日期,您还没有出生!",vbOKOnly+vbExclamation,"警告"
优化三:添加成绩信息窗体———–自动显示姓名
(使得我们的程序用起来更加人性化!)
原本这个窗体的功能是通过选择“班号”,然后通过“班号”来筛选出对应的“学号”
通过“班号”筛选中对应的“年级”最后通过年级筛选出对应的“课程”
具体的过程如下:
PrivateSubcomboClassno_Click()
txtSQL="select*fromstudent_infowhereclass_No='"&comboClassno.Text&"'"
Setmrc=ExecuteSQL(txtSQL,Msgtext)
comboSID.AddItemmrc!student_ID
txtSQL="select*fromclass_infowhereclass_no='"&comboClassno.Text&"'"
Setmrc=ExecuteSQL(txtSQL,Msgtext)
txtSQL="select*fromgradecourse_infowheregrade='"&Grade&"'"
'grade是gradecourse表中的一个字段
Setmrc=ExecuteSQL(txtSQL,Msgtext)
comboCourse.AddItemmrc!course_Name
但是当你运行后你会发现,窗体中的名字还需要我们自己打进入,这个时候我觉得就出现了严重的问题,不但浪费时间,而且很容易把名字打错,因为数据库中的学号是唯一的,所以我们为什么不能根据唯一的学号来筛选出对应的学生姓名?
优化之后添加的具体代码如下:
由于是把学号作为基准,所以我将这些代码添加到了学号的单击事件中:
txtSQL="select*fromstudent_Infowherestudent_id='"&comboSID.Text&"'"
Setmrc=ExecuteSQL(txtSQL,Msgtext)
这样我们在选择了学号之后名字也就会自动出现!
优化四:添加学生信息时,在姓名的文本框中只能添加汉字:
PrivateSubtxtSID_KeyPress(KeyAsciiAsInteger)
优化五:更改数据库的设计结构:
设置 *** 号的限定长度
在学生系统的添加学生信息中,细心的话你会发现,当你输入 *** 号的长度多于10位的时候我们的系统就会报错,刚开始我以为是文本框的原因,于是就用
Len(texttell.text)<10这个语句限定了文本框的输入长度,但是仔细想想发现我们现实中的 *** 号一般都是11,这个时候一定是数据库中限定了 *** 字段的长度,
只要我们将 *** 字段的长度从10改为11那么我们的程序就可以正常运行了
具体操作 *** :
打开数据库找到student表右击“student_Info”——–点击“设计”——这个时候就会打开这个设计表的界面
仔细观察我画圈的部位,他的长度果然是10,所以我们如果将那个10改为11那么我们在程序中就可以输入11位的 *** 号了。
但是这个时候数据库出错了,弹出了提示:
如何将数据库的设计改为可以更改?
工具—-选项—–设计器—-将“阻止保存要求重新创建表的更改”中的勾取消掉
最后保存我们对表结构的设计就可以畅通无阻了
优化五:拒绝重复添加年级的课程
在添加年级课程这个窗体中,当我们点击“设置课程”按钮时候你会发现我们的“所有课程”列表框中的内容会一直重复添加:
只要一句代码就可以让这种现象消失:
在”设置课程”的点击事件中添加这样一句代码:
listallcourse.Clear即可
当我们将课程从“所有课程”向”已经选择课程”列表框中添加的时候你会发现,可以多次添加一个课程,这样就会让程序混乱,为了让程序看起来更加完美,我们要限定”已经选择课程”列表框中的课程不能同名:
在右箭头的按钮的单击事件中添加代码,实现限定列表框内容:
Iflistallcourse.ListIndex<>-1Then
s=listallcourse.List(listallcourse.ListIndex)
Iflistselectcourse.ListCount=0Then
listselectcourse.AddItemlistallcourse.List(listallcourse.ListIndex)
Forb=0Tolistselectcourse.ListCount-1
Iflistselectcourse.List(b)=sThen
listselectcourse.AddItemlistallcourse.List(listallcourse.ListIndex)
相关文章
网友点评
博博常识网
www.kissing2lips.com