`

处女座——菜鸟程序员的工程总结

阅读更多

学生信息管理系统是学习编程以来的处女座,无论好与坏,它都是菜鸟成长道路上最璀璨的启明星。

对于不懂什么是需求,没有熟练掌握编程规范的我们来说,学生信息管理系统是我们初步学习、认识数据库并实际运用的典型事例。虽然只是一个简单不过的例子,但它学习编程起着巨大的作用,不仅仅可以初步掌握、运用数据库,更重要的是提高对数据库学习的兴趣。有了基础和兴趣,你还怕学不会数据库吗?

学生信息管理系统非常的简单,解决了VB与数据库,最主要的两大问题:

一、调用数据库

二、对数据的增、删、改、查

数据库的调用(用于调用经常使用,在模块中定义一个函数):


Public Function ExecuteSQL(ByVal strSQL As String, MsgString As String) As ADODB.Recordset
	    
    	'定义ADO对象
     	Dim Cnn  As ADODB.Connection
	Dim Rst As ADODB.Recordset
	Dim sTokens() As String
	    
	'错误处理
	On Error GoTo Error_Handle
	    
	'拆分sql语句付给数组
	sTokens = Split(strSQL)
	'打开连接
	Set Cnn = New ADODB.Connection
	Cnn.Open ConnectString
	    
   	'如果插入,删除,更新语句,则不返回结果。如果是查询语句则返回结果集
    	If InStr("insert,delect,update", UCase$(sTokens(0))) Then
		Cnn.Execute strSQL
	        
		MsgString = sTokens(0) & "query successful"
   	Else
		Set Rst = New ADODB.Recordset
		Rst.Open Trim$(strSQL), Cnn, adOpenKeyset, adLockOptimistic
	        
		Set ExecuteSQL = Rst
	        
		MsgString = "查询到" & Rst.RecordCount & "条记录"
   	End If
	Exit Function
	    
	'错误处理,如果出现错误,记录错误信息,然后退出
	Error_Handle:
	'卸载ADO对象
	Set Rst = Nothing
	Set Cnn = Nothing
End Function

我们以添加学籍、删除学籍信息、修改学籍和查询学籍为例,为大家讲解对数据的增、删、改、查。

在增、删、改、查学籍信息时,对于重复的部分,定义一个过程,方便调用。


Public Sub ViewData() '赋值过程
     	TxtStuId.Text = StudentInfo.Fields(0)
    	TxtStuname.Text = StudentInfo.Fields(1)
    	CmbSex.Text = Trim(StudentInfo.Fields(2))
    	DTPBirthday.Value = Format(StudentInfo.Fields(3), "yyyy-mm-dd")
    	CmbClassNo.Text = StudentInfo.Fields(4)
    	TxtTel.Text = StudentInfo.Fields(5)
    	DTPEntrancedate.Value = Format(StudentInfo.Fields(6), "yyyy-mm-dd")
    	TxtAddress.Text = StudentInfo.Fields(7)
    	TxtComment.Text = StudentInfo.Fields(8)  
End Sub

添加学籍信息:

	Dim objRs As ADODB.Recordset
    	Dim strSQL As String
    	Dim Msgtxt As String
    
    	'调用execute函数执行sql语句,返回学生信息集
    	strSQL = "select * from student_info where student_Id='" & Trim(TxtStuId.Text) & "'"
   	 Set objRs = ExecuteSQL(strSQL, Msgtxt)
    	'判断学号是否重复,重复则重新输入,不重复进入下一步判断
    	If objRs.EOF = False Then
     		 MsgBox "学号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
     	 	objRs.Close
      		TxtStuId.SetFocus
    	Else
      		objRs.Close
      		'判断出生日期格式是否正确,正确则进行下一步判断
       		If Not IsDate(DTPBirthday.Value) Then
          		MsgBox "出生时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
          		DTPBirthday.SetFocus
       	Else
          		DTPBirthday = Format(DTPBirthday, "yyyy-mm-dd")
          		'判断入校日期格式是否正确,正确则开始向数据库学籍信息集添加信息
           	If Not IsDate(DTPExtrance.Value) Then
           		 MsgBox " 入校时间格式应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
            		DTPExtrance.SetFocus
          	Else
            		DTPExtrance = Format(DTPExtrance, "yyyy-mm-dd")
            		'调用execute函数执行sql语句,返回学生信息结果集
             		strSQL = "select * from student_info"
           		Set objRs = ExecuteSQL(strSQL, Msgtxt)
            		objRs.AddNew
            
            		With objRs
                		.Fields(0) = Trim(TxtStuId.Text)
                		.Fields(1) = Trim(TxtStuname.Text)
                		.Fields(2) = Trim(CmbSex.Text)
                		.Fields(3) = Trim(DTPBirthday.Value)
                		.Fields(4) = Trim(CmbClassNo.Text)
                		.Fields(5) = Trim(TxtTele.Text)
                		.Fields(6) = Trim(DTPExtrance.Value)
                		.Fields(7) = Trim(TxtAddress.Text)
                		.Fields(8) = Trim(TxtComment.Text)
                		.Update
            		End With
            '提示成功信息  
            MsgBox "添加学籍信息成功!", vbOKOnly + vbExclamation, "警告"
            objRs.Close
            Unload Me
                
          End If
       End If
    End If  

删除学籍信息:

	
	Dim intMsgbox As Integer
	    
	vntBookmark = StudentInfo.Bookmark
	    
	intMsgbox = MsgBox("确定要删除当前记录", vbOKCancel, "删除记录")
	    
	If intMsgbox = vbOK Then
		StudentInfo.MoveNext
	        	
		'根据要删除记录的位置不同,选择不同的删除方式

	   	'如果要删除的记录是记录集的最后一条记录   
		If StudentInfo.EOF Then   
			'记录已经是最后一条记录,需要移到第一条记录	          
			StudentInfo.MoveFirst    
	 		'记录当前的书签
	           	vntBookmark = StudentInfo.Bookmark          
	 		'返回上一条记录
	 		 StudentInfo.MoveLast         
	 		'删除记录
	   		StudentInfo.Delete  
	 		'返回刚才书签的记录位置
	  		StudentInfo.Bookmark = vntBookmark  
			Call ViewData
	            
		Else
			'记录当前指针的位置
	         		vntBookmark = StudentInfo.Bookmark            
	  		StudentInfo.MovePrevious
	         		StudentInfo.Delete
	         		StudentInfo.Bookmark = vntBookmark
	         		Call ViewData
	            
	        	End If

	        	StudentInfo.Bookmark = vntBookmark
	        	Call ViewData
	End If

修改学籍信息:

	
	Dim strSQL As String	    
      Dim Msgtxt As String
	Dim TempRs As ADODB.Recordset
	'删除当前的记录
	StudentInfo.Delete
	'取得记录集
	strSQL = "select * from student_info where student_Id = '" & Trim(TxtStuId.Text) & "'"
	Set TempRs = ExecuteSQL(strSQL, Msgtxt)
	
	'判断学号是否重复,若重复,则提示信息,不重复则进一步验证
	If TempRs.EOF = False Then
		MsgBox "学号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
	         TempRs.Close
	         Set TempRs = Nothing
	         TxtStuId.SetFocus
	Else
	         '关闭临时记录,并释放
	           TempRs.Close         
	         Set TempRs = Nothing
	         '判断日期格式是否正确,不正确,则提示信息,正确则进一步验证
	           If Not IsDate(DTPBirthday.Value) Then
	         		MsgBox "出生日期的格式应输入(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
	            	DTPBirthday.SetFocus
	       	Else
	            	DTPBirthday.Value = Format(DTPBirthday.Value, "yyyy - mm - dd")
	           
	             	'判断入校日期格式是否正确
	            	If Not IsDate(DTPEntrancedate.Value) Then
	               		MsgBox "入校日期格式应输入(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
	                		DTPEntrancedate.SetFocus
	            	Else
	                		DTPEntrancedate.Value = Format(DTPEntrancedate.Value, "yyyy-mm-dd")
	               
	 			'向记录中添加记录
	                		StudentInfo.AddNew
	                		With StudentInfo
	                			.Fields(0) = Trim(TxtStuId.Text)
	                			.Fields(1) = Trim(TxtStuname.Text)
	                			.Fields(2) = Trim(CmbSex.Text)
	                			.Fields(3) = Trim(DTPBirthday.Value)
	                			.Fields(4) = Trim(CmbClassNo.Text)
	                			.Fields(5) = Trim(TxtTel.Text)
	                			.Fields(6) = Trim(DTPEntrancedate.Value)
	                			.Fields(7) = Trim(TxtAddress.Text)
	                			.Fields(8) = Trim(TxtComment.Text)
	                			.Update
	                		End With
	               
	 		'记录添加成功
	                	MsgBox "恭喜您,修改学籍成功!", vbOKOnly + vbExclamation, "警告"
	                
	                	StudentInfo.Bookmark = vntBookmark
	                	Call  ViewData	                            
	                	BlnClean = True
	             	End If
	        	End If
	End If

查询学籍信息:


'显示第一条记录
Private Sub CmdFirst_Click()
	StudentInfo.MoveFirst
    	Call ViewData
    
End Sub
'显示最后一条记录
Private Sub CmdLast_Click()
    	StudentInfo.MoveLast
    	Call ViewData
End Sub
'显示下一条记录
Private Sub CmdNext_Click()
    	StudentInfo.MoveNext
    	If StudentInfo.EOF Then
        		StudentInfo.MoveFirst
   	End If
    	Call ViewData
End Sub
'显示前一条记录
Private Sub CmdPrevious_Click()
    	StudentInfo.MovePrevious
    	If StudentInfo.BOF Then
        		StudentInfo.MoveLast
    	End If
    	Call ViewData
End Sub

虽然这仅是对数据库最基础、最基本的学习和运用,对于大牛们来讲,代码太简单了,不值得一提。我反而觉得是菜鸟程序员成长道路上的敲门砖。

就当是小试牛刀,为编程打下良好的基础。有句话说的好:良好的基础是成功的一半。“万丈高楼平地起”说的是从基础做起,从零开始,事实上是包含地面之下的基础的,决非只是从地面开始。

分享到:
评论

相关推荐

    C++编程惯用法——高级程序员常用方法和技巧.pdf

    《C++编程惯用法——高级程序员常用方法和技巧》是Robert B. Murray所著的一本详细介绍C++编程中高级技巧和策略的书籍。本书致力于帮助初中级C++程序员通过掌握编程惯用法,提高编程效率和代码质量。作者结合自己...

    东北大学软件工程设计——菜鸟驿站快递管理系统

    《东北大学软件工程设计——菜鸟驿站快递管理系统》 在当今社会,随着电子商务的快速发展,快递服务已成为日常生活中不可或缺的一部分。为了高效地管理大量的包裹流转,菜鸟驿站快递管理系统应运而生。这个系统的...

    电子工程师前辈的经验——菜鸟必看

    文档列表: 30年职场生涯的感悟.doc 从五个方面把自己打造成最优秀的硬件工程师....一个老程序员的心里话.doc 专家谈单片机职业发展规划.doc 。。。 都是多年工作经验的硬件软件老鸟总结的宝贵思想,分享给大家。。。

    Java学生管理系统——菜鸟

    【Java学生管理系统——菜鸟】 Java学生管理系统是一款针对初学者设计的项目,旨在帮助他们理解和实践Java编程语言以及数据库管理的基本概念。这个系统主要是用来管理学生的信息,如姓名、学号、年龄、专业等,同时...

    计算机软件开发行业——程序员的竞升之路感悟.pdf

    ### 计算机软件开发行业——程序员的竞升之路感悟 #### 一、引言 在计算机软件开发行业中,程序员的职业发展路径具有明显的层次性。本文档试图通过一个简化的模型来探讨程序员从入门到高级阶段的成长过程。该模型...

    Word版,Python GUI设计——Tkinter菜鸟编程(上、中、下)

    ### Python GUI设计——Tkinter基础知识详解 #### 一、Tkinter简介 Tkinter是Python标准库中的一个图形用户界面(GUI)工具包,它提供了一系列的控件来帮助开发者快速构建用户界面。由于其易用性和跨平台特性,...

    菜鸟程序员自学java2必备教程资料

    资源名称:菜鸟程序员自学java 2必备教程资料资源目录:【】abbr_4e2ba17756f9c1a3cd49fd40e46ddf14【】abbr_52d6668dc17bc656f0d5c44bce526c32【】abbr_5cc48e1bd12d2af741fa4b92bfaa8452【】abbr_704bdbe052abfb...

    “菜鸟”程序员和“大神”程序员差距在哪里

    刚刚走出就业的程序员,技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。首先请您先想想这几个问题。...“菜鸟”程序员和“大神”程序员差在哪里?真是差在技术上了吗?那不是差在技术上那差在了哪里?

    大前端技术与管理——菜鸟技术团队全栈化(开发全栈前端)之路 共30页.pdf

    ### 大前端技术与管理——菜鸟技术团队全栈化(开发全栈前端)之路 #### 一、全栈化的背景 随着互联网技术的发展,企业对于技术团队的要求越来越高,特别是对于前端开发人员的需求更加多元化和复杂化。传统的前端...

    企业战略管理——“菜鸟网络”.pdf

    本文将对「企业战略管理——“菜鸟网络”」进行详细的分析和知识点总结。 公司简介 菜鸟网络科技是阿里巴巴集团、银泰集团、复星集团、富春控股、顺丰集团、三通一达、宅急送、汇通,以及相关金融机构共同组建的...

    [网盘]java程序员由菜鸟到笨鸟.pdf

    ### Java程序员成长之路——从菜鸟到笨鸟 #### 一、引言 《Java程序员由菜鸟到笨鸟》是一本由曹胜欢编写的书籍,旨在帮助初学者掌握Java编程的基础知识,并逐步进阶至更高级的应用场景。本书不仅适合初学者作为...

    是非人生,一个菜鸟程序员的职场经历

    讲述的一个程序员的艰辛道路,从一个不起眼的程序员到一个大鸟的历程。其中许多方式值得我们学习

    php程序员菜鸟成长手记——php入门教程

    ### PHP程序员菜鸟成长手记——php入门教程 #### 一、PHP简介 ##### 1. Web程序工作原理 Web程序工作原理是指用户通过浏览器发送请求到服务器,服务器处理请求后返回响应的过程。在这个过程中,服务器端脚本语言...

    菜鸟程序员如何从新手进阶到高手

    菜鸟程序员如何从新手进阶到高手.首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。“当你不创造东西时,你只会根据自己的...

    程序员如何从小白到大神——免费程序课程培训宣传ppt模板.rar

    标题中的“程序员如何从小白到大神——免费程序课程培训宣传ppt模板.rar”揭示了这个压缩包的内容,它提供了一份PPT模板,旨在帮助程序员从初学者晋升为专业人士的道路上进行学习和提升。这个过程通常涉及到一系列的...

    Java程序员由菜鸟到笨鸟学习文档

    "Java程序员由菜鸟到笨鸟学习文档"就是这样一个旨在帮助初入Java世界的学习者逐步进阶的资源。它覆盖了从Java语言的基础知识到Web开发框架的关键概念,为读者提供了一个全面的学习路径。 首先,对于Java的基础部分...

Global site tag (gtag.js) - Google Analytics