#include "mysqlserver.h"
SqlServer::SqlServer()
{
}
void SqlServer::InitSql(){
//添加SqlServer数据库
db=QSqlDatabase::addDatabase("QODBC");
qDebug()<<"ODBC driver?"<<db.isValid();
QString dsn=QString::fromLocal8Bit("QTDSN");
//连接数据库
db.setHostName("127.0.0.1");
/*
最初这里我和我的搭档都想错了,认为对于不同的用户,应该分类成拥有不同权限的角色,
这样每次一个用户登录时,就直接让这个用户操作数据库,因为对这个用户分配了权限,
所以这个用户对某些操作不能实现,但是这个想法从一开始就是错的,还是对用户权限这里
理解的不到位,用户权限是为了给操作数据库的程序员们设置的,而不是给使用我们系统的
用户使用的,使用我们系统的用户在我们这里只是一条数据,而不是拥有操作数据库的“程序员”,
对于用户权限的控制应该体现在界面上,如果用户没有删除数据这个功能,那么用户的界面上就
不会显示删除这个按钮,这样用户就不除数据了。
*/
//数据库用户名
db.setUserName("sa");
//数据库密码
db.setPassword("123456");
//使用的数据库名称
db.setDatabaseName(dsn);
if(db.open()){//数据库打开成功
qDebug()<<"Database connected successfully!";
query=new QSqlQuery(db);
query2=new QSqlQuery(db);
return;
}
else{//数据库打开失败
qDebug()<<"Database connected failed!";
qDebug()<<db.lastError().text();
return;
}
}
int SqlServer::checkLogin(QString userID, QString userPwd){
qDebug()<<"userID:"<<userID<<"userPwd:"<<userPwd;
QString str=QString("select UserType from UserTable Where UserID='%1' And UserPwd='%2'").arg(userID).arg(userPwd);
query->exec(str);
int num=query->numRowsAffected();
query->next();
qDebug()<<"num:"<<num;
if(num!=1){
return -1;
}
else{
qDebug()<<"userType:"<<query->value(0).toInt();
return query->value(0).toInt();
}
}
user_simple_package SqlServer::FindUserSimpleInfo(QString userID,int userType){
user_simple_package userSimplePackage;
qDebug()<<"userID"<<userID;
if(userType==0){//如果是学生
QString str=QString("select StuName from StudentTable where StuID='%1'").arg(userID);
query->exec(str);
int num=query->numRowsAffected();
qDebug()<<"num:"<<num;
query->next();
strncpy(userSimplePackage.userID,userID.toLatin1().data(),10);
qDebug()<<query->value(0).toString();
strncpy(userSimplePackage.userName,query->value(0).toString().toLocal8Bit().data(),20);
qDebug()<<"StuName:"<<userSimplePackage.userName;
}
else{
}
return userSimplePackage;
}
user_full_package SqlServer::FindUserFullInfo(QString userID, int userType){//用户完整信息包
user_full_package userFullPackage;
qDebug()<<"userID"<<userID;
if(userType==0){
QString str=QString("select * from stuFullInfo where StuID='%1'").arg(userID);
query->exec(str);
int num=query->numRowsAffected();
qDebug()<<"num:"<<num;
query->next();
strncpy(userFullPackage.userInstituteName,query->value("InstitueName").toString().toLocal8Bit().data(),30);
strncpy(userFullPackage.userClassName,query->value("ClassName").toString().toLocal8Bit().data(),30);
strncpy(userFullPackage.userAssistantName,query->value("AssistantName").toString().toLocal8Bit().data(),20);
strncpy(userFullPackage.usermasterName,query->value("MasterName").toString().toLocal8Bit().data(),20);
userFullPackage.userGender=query->value("StuGender").toBool();
strncpy(userFullPackage.userCardID,query->value("StuCardID").toString().toLocal8Bit().data(),20);
QString str1=userFullPackage.userCardID;
strncpy(userFullPackage.userBirthDay,QString(str1.mid(6,8)).toLocal8Bit().data(),10);
userFullPackage.userAge=2018-str1.mid(6,4).toInt();
strncpy(userFullPackage.userNativePlace,query->value("StuNativePlace").toString().toLocal8Bit().data(),50);
strncpy(userFullPackage.userNationality,query->value("StuNationality").toString().toLocal8Bit().data(),50);
}
return userFullPackage;
}
student_course_package* SqlServer::FindStuCourseInfo(QString StuID,int*cont){//学生查看自己选的课程信息
QString str=QString("select * from stuCourseInfo where StuID='%1'").arg(StuID);
query->exec(str);
int num=query->numRowsAffected();
*cont=num;
qDebug()<<"num:"<<num;
student_course_package* studentCoursePackage;
studentCoursePackage =(student_course_package*)malloc(sizeof(student_course_package)*num);
int i=0;
while (query->next()) {
strncpy(studentCoursePackage[i].CourseID,query->value("CourseID").toString().toLocal8Bit().data(),10);
strncpy(studentCoursePackage[i].CourseName,query->value("CourseName").toString().toLocal8Bit().data(),30);
strncpy(studentCoursePackage[i].CourseTypeName,query->value("CourseTypeName").toString().toLocal8Bit().data(),20);
strncpy(studentCoursePackage[i].TchName,query->value("WorkerName").toString().toLocal8Bit().data(),20);
studentCoursePackage[i].CourseCredit=query->value("CourseCredit").toInt();
i++;
}
return studentCoursePackage;
}
student_courseScore_package* SqlServer::FindStuCourseScoreInfo(QString StuID,int *cont){//学生查看自己成绩
QString str=QString("select * from stuCourseInfo where StuID='%1'and Score is not NULL").arg(StuID);
qDebug()<<str;
query->exec(str);
int num=query->numRowsAffected();
*cont=num;
qDebug()<<"num:"<<num;
student_courseScore_package* studentCourseScorePackage;
studentCourseScorePackage=(student_courseScore_package*)malloc(sizeof(student_courseScore_package)*num);
int i=0;
while(query->next()){
strncpy(studentCourseScorePackage[i].CourseID,query->value("CourseID").toString().toLocal8Bit().data(),10);
strncpy(studentCourseScorePackage[i].CourseName,query->value("CourseName").toString().toLocal8Bit().data(),30);
studentCourseScorePackage[i].CourseScore=query->value("Score").toInt();
i++;
qDebug()<<studentCourseScorePackage[i].CourseID<<studentCourseScorePackage[i].CourseName<<studentCourseScorePackage[i].CourseScore;
}
return studentCourseScorePackage;
}
student_course_package* SqlServer::FindStuSelectedCourseInfo(QString StuID, int type, int *cont){
QString str;
if(type==0)//查询全部选修课信息
str=QString("select * from selectedCourseInfo");
else if(type==1)//通识课
str=QString("select * from selectedCourseInfo where courseTypeID='01'");
else if(type==2)//实践课
str=QString("select * from selectedCourseInfo where courseTypeID='02'");
else if(type==3)//英语课
str=QString("select * from selectedCourseInfo where courseTypeID='03'");
else if(type==4)//体育课
str=QString("select * from selectedCourseInfo where courseTypeID='04'");
query->exec(str);
int num=query->numRowsAffected();
*cont=num;
qDebug()<<"num:"<<num;
student_course_package* studentCoursePackage;
studentCoursePackage=(student_course_package*)malloc(sizeof(student_course_package)*num);
int i=0;
while(query->next()){
strncpy(studentCoursePackage[i].CourseID,query->value("CourseID").toString().toLocal8Bit().data(),10);
strncpy(studentCoursePackage[i].CourseName,query->value("CourseName").toString().toLocal8Bit().data(),30);
strncpy(studentCoursePackage[i].CourseTypeName,query->value("CourseTypeName").toString().toLocal8Bit().data(),20);
strncpy(studentCoursePackage[i].TchName,query->value("TeacherName").toString().toLocal8Bit().data(),20);
studentCoursePackage[i].CourseCredit=query->v
妄北y
- 粉丝: 2w+
- 资源: 1万+
最新资源
- 市级产业聚集水平数据集(2000-2022年).xlsx
- PID控制项目-四轴飞行类-“瑞萨杯”电子竞赛作品—多旋翼自主飞行器,含原理图&源码&论文.zip
- PID控制项目-四轴飞行类-CREELINKS STM32 无人机+遥控器资料开源(硬件+程序源码+地面站源码+教程等).zip
- 小程序socket.io客户端,支持微信小程序、支付宝小程序.zip
- AndroidJetpackCompose入门到精通中文PDF完整版最新版本
- 带yolov7pytorch标记的火灾检测数据集,可区分烟火火焰和烟雾,9332张图片
- 药片检测数据集VOC+YOLO格式2729张3类别.zip
- PID控制项目-四轴飞行类- 为电赛四轴整理的资料(STM32和K60).zip
- PID控制项目-四轴飞行类-电子设计大赛—多旋翼自主飞行器.zip
- PID控制项目-四轴飞行类-单片机主控的四旋翼飞行器(电路图&PCB&源代码&论文&视频).zip
- PID控制项目-四轴飞行类-STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程).zip
- PID控制项目-四轴飞行类-基于国产GD32的四轴飞行器.zip
- 小程序WeUI组件库.zip
- PID控制项目-四轴飞行类-飞控主板+摇控手柄+2.4G RF module等全套设计资料.zip
- PID控制项目-四轴飞行类-开源飞控 APM2.8电路原理图和PCB源文件.zip
- PID控制项目-四轴飞行类-瑞萨四轴飞行器设计(遥控板+主控板)全部资料开源.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈