Qt与SQL Server开发学生成绩管理系统
Qt与SQL Server开发学生成绩管理系统
功能:1、实现相应的界面显示
2、学生成绩的查询
3、学生成绩的修改
4、学生成绩的删除
5、学生成绩的插入
数据库是作为一个后台数据提供者,大部分操作,如插入、删除、修改等都是在前台完成的。
具体方法步骤:1、设置ODBC数据源(用于连接Qt与SQL Server的纽带):
点击控制面板-》系统与安全-》管理工具-》点击ODBC数据源-》用户区域点击添加-》选择SQL Server-》点击完成-》输入名称和描述
-》服务器选择下拉框的(local)如果没有则手动写上去,注意要是英文字符-》使用网络登录或者用户密码登录都是可以的-》
-》默认数据库选择你想要链接的数据库-》后面选项默认即可-》完成后点击测试,测试通过则这部分操作完成
注:如有部分地方不一致或者连接失败可以百度教程
2、打开Qt,创建Qt Gui应用
3、在主函数中添加如下连接数据库的代码:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QSqlDatabase>
#include <QStringList>
#include <QDebug>
#include <QMessageBox>
#include <QDialog>
#include <QLabel>
#include <QtSql>
#include <QSqlQuery>
#include <QTableView>
#include "mima.h"
//相应的头文件
void serch();//声明查询函数
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;//创建一个主窗口变量
QString dn=QString::fromLocal8Bit("八院学生成绩管理系统");//将主窗口命名为八院学生成绩管理系统
w.setWindowTitle(dn);
w.show();//输出主窗口
//创建链接**********************************************************************
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC"); //链接ODBC数据源
QString dsn=QString::fromLocal8Bit("student");
db.setDatabaseName(dsn);//将数据库的名字命名为student
if(!db.open())//打开数据库失败会出现相应的错误信息和提示
{
qDebug()<<db.lastError().text();
QMessageBox::critical(0,QObject::tr("错啦!"),db.lastError().text());
return false;
}
return a.exec();//无限循环执行主函数,主窗口和其功能一直实现
}
代码的具体功能可以根据注释自己慢慢研究得出
4、在设计模块中对自己的前台界面进行相应的设计
5、在头文件中写入相应的查询函数:
#ifndef MIAN_H
#define MIAN_H
#include <QTableView>
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QSqlDatabase>
#include <QStringList>
#include <QDebug>
#include <QMessageBox>
#include <QDialog>
#include <QLabel>
#include <QtSql>
#include <QSqlQuery>
void serch();
void serch()
{
QSqlTableModel *model = new QSqlTableModel();
model->setTable("STUDENT");
model->select();
QTableView *view = new QTableView;
view->setModel(model);
view->setSelectionMode(QAbstractItemView::SingleSelection);//设置选择模式
view->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选择行为
view->resizeRowsToContents();
view->show();
}
#endif // MIAN_H
6、在界面查询按钮中转到相应的槽,在槽函数中调用上面的查询serch()函数;
7、在界面插入按钮中转到相应的槽,在槽函数中添加如下代码:
void MainWindow::on_pushButton_2_clicked()
{
//ui->lineEdit
QString str;
QSqlQuery query;
str = QString::fromLocal8Bit("insert into STUDENT values('001','小明','男','08101','高数','爱因斯坦','60')");
query.exec(str);
}
8、对于删除操作我是在前面增加了一个输入选项来确定要删除的是哪一行(具体看截图)代码:
void MainWindow::on_pushButton_3_clicked()
{
QSqlTableModel *model = new QSqlTableModel();
model->setTable("STUDENT");
model->select();
QString str;
str=ui->lineEdit->text();
int val = str.toInt();
model->removeRow(val-1);
qDebug()<<val;
}
到目前为止,基本的学生成绩管理系统就做出来了,如果想要再深入了解学习或者还不满意可以加入一些密码登录等功能来完善你的数据库系统。