【学生信息管理系统】对象变量或者With块变量未设置

学生信息管系统照着代码敲,敲完了后,漏洞百出,最初碰到的就是下面的这个提示框

而当这个提示出现时,点击调试按钮返回

if mrc.EOF = True Then

VB中出现问题最快捷的方式就是去MSDN for VB上查找相关的信息,装上MSDN出现问题的时候,点击帮助。

由图可知,错误类型是对象变量或者With块变量未设置,而此处没有With块变量,那么只能是一种情况,对象变量未设置。此处的对象只有mrc 前面定义的一个Recordset记录集,这个问题原因是没有连上数据库,导致后面的Recordset对象的EOFBOF属性无效。

   而没有连上数据库的原因有很多,最常见的是下面的3种。

  1. ODBC数据源没有配置好
  2. 模块出连接数据库的代码出错
  3. SQL语句是否敲错。
  1. ODBC数据源的配置,最常见的问题就是没有local服务器,那么我们可以在服务器出输入一个英文点即可连接。     
   
   2.Public Function ConnectString() As String ' 这个函数是用来连接数据库 
              ConnectString = "FileDSN=student.dsn;UID=sa;PWD=fxq"                                                                    
        End Function                                                                                                                                                                    
FileDSN后面的Student必须是配置ODBC的时候,DSN文件的名字。UID是SQL Server 软件登录的账号,
         PWD 是 SQL Server 登录的密码。必须跟自己电脑上一致。
   
   3. t xtSQL = "select * from course_Info where course_No = ' " & Trim(txtCourseno.Text) & " '"         
SQL语句的结构,从外向内,分别是双引号,单引号,双引号,还有&连接符。该语句的意义是:从Course_Info 表中选择课程编号的内容,让他等于txtCourseno 这个输入框的内容,一定要在理解该语句的基础上,进行编 写,这样才能避免很多粗心和不理解代码犯下的最不易察觉的低级错误。

第一次敲数据库系统,部分代码是没有接触过的,这种情况下最容易出的错误时,字母和标点符号出错,而这类错误在纠错的过程中,会花掉我们大量的时间。学生信息管理系统中很多的代码是重复的,那么在敲代码的时候,刚开始的时候就要理解代码,这样后面的学习,才能更加游刃有余,也降低错误的发生。



学生成绩管理系统是一个常见的应用程序,它可以帮助学校或教育机构管理学生的成绩信息。在面向对象的C语言中,可以使用类和对象来实现该系统。 首先,我们可以创建一个名为"Student"的类,用于表示学生对象。该类可以包含学生的姓名、学号和成绩等属性,以及一些方法来操作这些属性,比如获取和设置成绩。 然后,我们可以创建一个名为"GradeManagementSystem"的类,用于管理学生成绩。该类可以包含一个学生对象数组作为成员变量,用于存储学生信息。同,它也可以提供一些方法来添加学生、删除学生、查询学生成绩等操作。 下面是一个简单的示例代码: ```c #include <stdio.h> #include <string.h> #define MAX_STUDENTS 100 typedef struct { char name[50]; int id; float score; } Student; typedef struct { Student students[MAX_STUDENTS]; int count; } GradeManagementSystem; void addStudent(GradeManagementSystem* system, char* name, int id, float score) { if (system->count < MAX_STUDENTS) { strcpy(system->students[system->count].name, name); system->students[system->count].id = id; system->students[system->count].score = score; system->count++; printf("Successfully added student '%s'\n", name); } else { printf("Failed to add student: Maximum number of students reached\n"); } } void printStudent(GradeManagementSystem* system, int id) { for (int i = 0; i < system->count; i++) { if (system->students[i].id == id) { printf("Name: %s\n", system->students[i].name); printf("ID: %d\n", system->students[i].id); printf("Score: %.2f\n", system->students[i].score); return; } } printf("Student with ID %d not found\n", id); } int main() { GradeManagementSystem system; system.count = 0; addStudent(&system, "Alice", 1, 85.5); addStudent(&system, "Bob", 2, 92.0); addStudent(&system, "Charlie", 3, 78.5); printStudent(&system, 2); return 0; } ``` 这只是一个简单的示例,你可以根据实际需求进行扩展和修改。希望对你有所帮助!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值