学生系统错误91(一)

哈哈哈哈,自己的进度耽误了好长时间,终于有了起色,虽说比大家还是要慢,加油,下面来总结一些错误恶心之王----91

 

大家在做学生信息管理系统的时候,出现最多的应该就是这个问题了,“实时错误‘91’:对象变量或with块变量未设置”。如图:

 

遇到这个问题首先我们先看一下我们的代码过程中有没有使用With语句,如果有那就很简单了,如果没有也不要心烦,其实很简单。

 

遇到这个问题,我们应该去参考MSDN,不过这时候MSDN似乎没有帮到我们很多,总结了一下,其实出现这个错误的情况有很多种:

 

1、在运行程序之前没有配置ODBC数据源或者ODBC数据源配置错误,当然前提得是SQL Server执行了相关的SQL代码(学生系统中用到的student.mdb文件)。其实指代你的ODBC数据源设置有问题,或者你的公共模块之中出现代码错误和连接数据源的密码不对应问题

 

2、逻辑错误:缺少语句,在给执行语句txtSQL正确赋值之后,直接操作数据库中的数据,说通俗点就是还没连上数据库就对其进行操作,这个相信大家很少会犯这种错误,所以这就要求我们平常养成一个良好的逻辑思维方式。

 

2、代码问题,大多数情况是查询语句有问题,比如:

(1)、SQL 语句之间少了空格:

txtSQL = "select  * fromstudent_Info" 

(2)、在执行查询学生学籍信息的窗体中,执行语句

txtSQL = "select * from result_Info where ",因为后面还要添加条件,所以在‘where’和‘ " ’之间缺少空格时会出错。

 

(3)、在一句完全的查询语句中,比如  

txtSQL = "select * from class_Info where class_No= '" & Trim(txtClassno.Text) & "'",其中在最后判断输入框中的条件时,双引号和单引号一定要注意(整句话的引号从外到内一共分三层:双引号,单引号,双引号),既不可破坏其顺序层次,也不能丢三落四。

 

但是正确的应该写成:

 

等号后面要有空格,不然就会出错。

为什么把代码问题放在了最后呢,因为小编相信大家代码对大家来说一定是最简单最不重要的那一个。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
以下是一个简易的学生成绩管理程序的代码,实现了上述要求: ```c++ #include <iostream> #include <string> #include <algorithm> using namespace std; const int MAX_STUDENT_NUM = 5; // 学生数目 const int MAX_SUBJECT_NUM = 6; // 科目数目 // 学生成绩单结构体 struct StudentScore { int id; // 学号 int scores[MAX_SUBJECT_NUM]; // 成绩数组 double totalScore; // 总成绩 }; // 获取学生在某一科目的成绩排名 int getSubjectRank(StudentScore students[], int subjectIndex, int studentIndex) { int rank = 1; for (int i = 0; i < MAX_STUDENT_NUM; i++) { if (i != studentIndex && students[i].scores[subjectIndex] > students[studentIndex].scores[subjectIndex]) { rank++; } } return rank; } // 获取学生总成绩排名 int getTotalRank(StudentScore students[], int studentIndex) { int rank = 1; for (int i = 0; i < MAX_STUDENT_NUM; i++) { if (i != studentIndex && students[i].totalScore > students[studentIndex].totalScore) { rank++; } } return rank; } // 修改学生成绩 void modifyScore(StudentScore students[], int studentIndex, int subjectIndex, int newScore) { students[studentIndex].scores[subjectIndex] = newScore; double total = 0; for (int i = 0; i < MAX_SUBJECT_NUM; i++) { total += students[studentIndex].scores[i]; } students[studentIndex].totalScore = total; } int main() { StudentScore students[MAX_STUDENT_NUM] = { {101, {96, 79, 88, 77, 76, 83}, 0}, {102, {79, 82, 86, 82, 67, 91}, 0}, {103, {83, 98, 95, 92, 93, 88}, 0}, {104, {92, 82, 78, 89, 81, 79}, 0}, {105, {87, 95, 91, 85, 87, 75}, 0}, }; // 计算学生总成绩 for (int i = 0; i < MAX_STUDENT_NUM; i++) { double total = 0; for (int j = 0; j < MAX_SUBJECT_NUM; j++) { total += students[i].scores[j]; } students[i].totalScore = total; } // 显示菜单 cout << "请选择要执行的业务选项:" << endl; cout << "1. 查询科目平均成绩和个人排名" << endl; cout << "2. 查询总成绩排名" << endl; cout << "3. 修改成绩" << endl; int option; cin >> option; // 处理用户选择 if (option == 1) { int id, subjectIndex; cout << "请输入学号和科目名称的序号(0:语文, 1:数学, 2:英语, 3:物理, 4:化学, 5:生物):" << endl; cin >> id >> subjectIndex; double sum = 0; for (int i = 0; i < MAX_STUDENT_NUM; i++) { sum += students[i].scores[subjectIndex]; } double average = sum / MAX_STUDENT_NUM; int rank = getSubjectRank(students, subjectIndex, id - 101); cout << "该科目平均成绩为:" << average << endl; cout << "该生在该科目的排名为:" << rank << endl; } else if (option == 2) { int id; cout << "请输入学号:" << endl; cin >> id; int rank = getTotalRank(students, id - 101); cout << "该生的总成绩排名为:" << rank << endl; } else if (option == 3) { int id, subjectIndex, newScore; cout << "请输入学号、科目名称的序号和新的成绩分数(0~100):" << endl; cin >> id >> subjectIndex >> newScore; modifyScore(students, id - 101, subjectIndex, newScore); cout << "修改成功!" << endl; } else { cout << "无效选项!" << endl; } return 0; } ``` 注意:本程序没有对用户输入进行验证,仅作为一个简单的示例程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值