资源预览内容
第1页 / 共248页
第2页 / 共248页
第3页 / 共248页
第4页 / 共248页
第5页 / 共248页
第6页 / 共248页
第7页 / 共248页
第8页 / 共248页
第9页 / 共248页
第10页 / 共248页
亲,该文档总共248页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库应用程序设计方法第第7 7章章Visual Basic 程序设计17.1 成绩查询程序设计7.1.1 任务概述要编写一个实用的数据库程序, 必须系统地学习过数据库原理的知识 ,并首先设计出符合用户业务需求的 数据库体系,然后才能利用某种语言 ,开发出针对这个数据库的交互程序 :数据库应用程序。2下面以一个简化的数据库设计为例:1.进行数据库设计建立一个名为“成绩”的数据库 ,其中包含三张数据表,即学习成绩表、 学生情况表、课程情况表。数据库库管理系统统数据库库名表名SQL Server成绩绩学生成绩绩表 学生情况表 课课程情况表 用户户创建数据库3创建表结构表 名结结 构学生成绩绩表 学生情况表 课课程情况表 用户户学号、课课程号、成绩绩 学号、姓名 课课程号、课课程名 用户户名、密码码42. 程序的主要功能 利用SQL语句完成对学生成绩表的插入、修改、删 除和查询操作。比如: (1)插入记录: Insert Into 学生成绩表(学号,课程号,成绩) Values(001,001,85) (2)删除记录 Delete From 学生成绩表 Where 学号=001 And 课程号=001 (3)修改记录 Update 学生成绩表 set 成绩 =90 Where 学号=001 And 课程号=001 (4)按学号查询 Select * From 学生成绩表 Where 学号=0015在完成用户界面设计的基础上,只要将上述SQL语句“嵌入”到VB程序中,即可完成成绩查询程序的开发,这种范式通常称为嵌入式开发.67.1.2 界面设计1.创建工程 新建一“标准EXE”工程.工程名为“成绩查询”. 2.创建主窗体(frmMain) 设计菜单: 增加 删除 修改 查询 退 出 增加学生记录 删除学生记录 增加课程记录 删除课程记录 增加成绩 删除成绩记录 增加用户 删除用户783.创建新增学生记录窗体 (frmAddStudent)94.创建新增课程记录窗体 (frmAddCourse)105.创建新增成绩记录窗体(frmAdd)116.创建新增用户记录窗体(frmAdd)127. 创建修改记录窗体( frmUpdate)138.创建删除学生记录窗体 (frmDelete)149.创建删除课程记录窗体 (frmDelete)1510.创建删除成绩记录窗体 (frmDelete)1611.创建删除用户窗体(frmDelete)1712.创建查询记录窗体(frmQuery)1813.创建身份验证窗体197.1.3 代码设计 1. 连接数据库代码 步骤: (1)通过“工程引用”菜单添加对象库:Microsoft Activex Data Objects 2.7 Library(Ado数据对象)。 (2)通过工程菜单添加一个模块(Module) ,并设计以下代码。 (3)通过“工程工程1属性”菜单,将窗 体frmText过程设计设置为启动对象。20添加模块代码: 声明全局对象变量ABOcn,用于创建于数据库的连接 Public ADDcn As Connection Public Sub main()定义数据库连接字符串Dim strSQLServer As String用于连接SQL Server数据库,其中:Server为服务器名称User ID为登录账号Password为登录口令Database为具体的数据库名21strSQLServer = strSQLServer = “Provider = SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=成绩;Data Source=lg“如果还没有建立于数据库的连接,则用以下代 码创建.If ADDcn Is Nothing ThenSet ADDcn = New ConnectionAdDDcn.Open strSQLServerEnd If End Sub22完成本项工作后,就创建了一个全 局变量ADDcn,但它是一个特殊的变量 ,其数据类型是数据连接对象( Connection对象)。可以把ADDcn理解 成是一个虚拟的数据库。或者称为VB 程序中的逻辑数据库,通过它可以非 常方便地访问其中的数据。换句话说 ,ADDcn是VB程序的后台数据库交互的 通道。232.设置窗体间的调用关系242.设置窗体间的调用关系 调用增加课程窗体 Private Sub AddCourse_Click(Index As Integer)frmAddCourse.Show End Sub 调用增加成绩窗体 Private Sub AddGrade_Click(Index As Integer)FrmAdd.Show End Sub 调用增加学生窗体 Private Sub AddStudent_Click(Index As Integer)FrmAddStudent.Show End Sub252.设置窗体间的调用关系 调用增加用户窗体 Private Sub AddUser_Click()FrmAddUser.Show End Sub 调用删除课程窗体 Private Sub DeleteCourse_Click()frmDeleteCourse.Show End Sub 调用删除成绩窗体 Private Sub DeleteGrade_Click()frmDelete.Show End Sub262.设置窗体间的调用关系 调用删除学生窗体 Private Sub DeleteStudent_Click()frmDeleteStudent.Show End Sub 调用删除用户窗体 Private Sub DeleteUser_Click()frmDeleteUser.Show End Sub 调用成绩查询窗体 Private Sub Query_Click()frmQuery.Show End Sub272.设置窗体间的调用关系调用修改成绩窗体 Private Sub Update_Click()FrmUpdate.Show End Sub调用退出程序 Private Sub Exit_Click()End End Sub283.frmAddStudent窗体的代码设计:293.frmAddStusent窗体的代码设计:(1)在Load事件中,进行初始化工作,代码如下: Private Sub Form_Load()Main声明一个记录集对象Dim ADOrs As New Recordset初始化文本框控件Text1.Text = “Text2.Text = “ End Sub303.frmAddStusent窗体的代码设计:(2)Command1_Click()(”确定”按钮)事件代码 Private Sub Command1_Click()Dim strSQL As String声明一个记录集对象Dim ADOrs As New Recordset与ADOcn连接对象关联ADOrs.ActiveConnection = ADOcn If Text1.Text = “ ThenMsgBox “未输入学号,请重新输入数据!“, vbCritical + vbOKOnlyExit SubEnd If 313.frmAddStusent窗体的代码设计:Command1_Click()(”确定”按钮)事件代码If Text2.Text = “ ThenMsgBox “未输入姓名,请重新输入数据!”, vbCritical + vbOKOnlyExit SubEnd If首先查询表中是否存在关键字相同的记录strSQL = “select * from 学生情况表“strSQL = strSQL & “ Where 学号=“ + Text1.Text + “ “strSQL = strSQL & “ and 姓名=“ + Text2.Text + “ADOrs.Open strSQL323.frmAddStusent窗体的代码设计:Command1_Click()(”确定”按钮)事件代码如果关键字重复,则退出If Not ADOrs.EOF ThenMsgBox “该记录已经存在,不能继续增加“, vbCritical + vbOKOnlyExit SubEnd If333.frmAddStusent窗体的代码设计:Command1_Click()(”确定”按钮)事件代码 拼写Insert插入语句strSQL = “Insert Into 学生情况表(学号,姓名)“strSQL = strSQL + “ Values(“ + Text1.Text + “,“strSQL = strSQL + “ + Text2.Text + “ + “)“执行Insert语句ADOcn.Execute strSQLMsgBox “已成功添加新记录“, vbQuestion + vbOKOnlyEnd Sub343.frmAddStusent窗体的代码设计:(3)Command2_Click()(”返回”按钮)事件代码Private Sub Command2_Click()Unload MefrmMain.ShowEnd Sub354.frmAddCourse窗体的代码设计:36frmAddCourse窗体的代码设计: (1)在Load事件中,进行初始化工作,代码如下: Private Sub Form_Load()Main声明一个记录集对象Dim ADOrs As New Recordset初始化文本框控件Text1.Text = “Text2.Text = “ End Sub37frmAddCourse窗体的代码设计:(1)在Load事件中代码Dim strSQL As String声明一个记录集对象Dim ADOrs As New Recordset 与ADOcn连接对象关联ADOrs.ActiveConnection = ADOcnIf Text1.Text = “ ThenMsgBox “未输入课程号,请重新输入数据!”, vbCritical + vbOKOnlyExit SubEnd If38frmAddCourse窗体的代码设计:(1)在Load事件中,进行初始化工作,代码如下:If Text2.Text = “ ThenMsgBox “未输入课程名,请重新输入数据!“, vbCritical + vbOKOnlyExit SubEnd If首先查询课程情况表中是否存在关键字相同的记录strSQL = “select * from 课程情况表“strSQL=strSQL &“ Where 课程号=“ + Text1.Text + “ “strSQL=strSQL & “ and 课程名=“ + Text2.Text + “ADOrs.Open strSQL 39(1)在Load事件代码如果关键字重复,则退出If Not ADOrs.EOF ThenMsgBox “该记录已经存在,不能继续增加“, vbCritical + vbOKOnlyExit SubEnd If拼写Insert插入语句strSQL = “Insert Into 课程情况表“strSQL = strSQL + “ Values(“ + Text1.Text + “,“strSQL = strSQL + “ + Text2.Text + “ + “)“执行Insert语句ADOcn.Execute strSQLMsgBox “已成功添加新记录“, vb
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号