//写在前面
这里推荐使用navicat for mySQL软件管理数据库。通过navicatke可以清楚的看到该数据库中的每个表的结构和成员,以便于访问数据库,并查询相关的数据。
//数据库中表的访问
//其实查询数据库的过程就是一个查表的过程,通过用户输入的数据开始依次查询到用户想要的数据
if(createConnection()){
QSqlQuery query("SELECT * FROM t_stud_info"); //t_stud_info是一个表单
while(query.next())
{
QString schoolID = query.value(0).toString();
if(schoolID == str)
{
QSqlQuery query1("SELECT * FROM t_stud_course_info");//t_stud_course_info是一个表单
while(query1.next())
{
QString ID = query1.value(1).toString();
if(ID == str)
{
QSqlQuery query2("SELECT * FROM t_courses");//t_courses是一个表单
while(query2.next())
{
QString courseID = query2.value(0).toString();
if(courseID == query1.value(2).toString())
{
//课程名称
course[i] = query2.value(1).toString();
//成绩
grade[i] = query1.value(3).toString();
//学分
xuefen[i] = query2.value(2).toString();
i++;
}
}
}
}
break;
}
}
如例子,我这个数据库中包涵三个表t_stud_info、t_stud_course_info、t_courses。我通过查找这三个表中的数据,就能找出用户所需要的全部数据
//关于query.value(0)的说明
这是一个Qquery类的变量,就是你每访问一个数据库中的表的时候,就要重新定义一个Qquery类的变量,如上例中我总共定义了三个query,query1,query2。
而query.value(0)指的就是这个表单中的第一列数据,依此类推,第二列就是query.value(1)、第三列就是query.value(2)……