如果在数据库中找到某个值,则打开另一个窗口
Opening a different window if a certain value in the database if found
我很难弄清楚如何检查数据库中的信息是否具有更改登录屏幕的特定值。当用户以教师或学生身份登录时,我想打开一个不同的窗口。我确实在数据库中为每个人分配了一个学生或老师的值。顺便说一下,其他学生的代码运行良好。
edit:if语句是我应该把代码放在的地方。
if(count == 1)
{
ui->statusLabel->setText("Username password correct. Username: "
+ uname);
//dbConnection->connClose();
if(query.value(""))
{
}
else
{
// hide login window
this->hide();
// open admin window
StudentDialog myStudent;
myStudent.setModal(true);
myStudent.exec();
}
}
http://qt-project.org/doc/qt-4.8/sql-sqlstatements.html
它显示了这个例子:
while (query.next()) {
QString name = query.value(0).toString();
int salary = query.value(1).toInt();
qDebug() << name << salary;
}
这个:
QSqlDatabase::database().transaction();
QSqlQuery query;
query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'");
if (query.next()) {
int employeeId = query.value(0).toInt();
query.exec("INSERT INTO project (id, name, ownerid) "
"VALUES (201, 'Manhattan Project', "
+ QString::number(employeeId) + ')');
}
QSqlDatabase::database().commit();
基本上,查询将结果存储在一个2d数组中。要在列之间导航,请使用值索引。若要强制转换它,请使用QVariant::toXXX()
选项,如toInt()
或toString()
等。若要从执行的查询中获得下一行值,请调用query.next()
。
http://qt-project.org/doc/qt-4.8/qsqlquery.html#value
http://qt-project.org/doc/qt-4.8/qsqlquery.html#next
http://qt-project.org/doc/qt-4.8/qvariant.html#details
所以在你的情况下,你可能只会打电话给:
bool is_teacher = query.value(0).toBool();
if(is_teacher)
{
// ...
}
// etc
如果你的某些陈述仍有问题,请尝试:
qDebug() << qPrintable(query.lastError().text());
希望能有所帮助。
相关文章:
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 如何将一个窗口保留在另一个应用程序窗口的前面
- Qt:从另一个窗口访问公共对象
- 触发另一个窗口的菜单按钮
- 如何在Qt中管理另一个窗口?
- 将变量从主窗口传递到另一个qt c++窗体
- Gtkmm - 关闭窗口然后显示另一个窗口的正确方法
- 当电子的窗口隐藏时如何激活另一个应用程序窗口
- 发送到另一个窗口的鼠标移动消息不执行任何操作
- xcb_get_image_reply另一个工作区/桌面上的窗口失败
- C++ 从另一个程序窗口的内存中编辑文本
- 在另一个C 程序的窗口中打开.exe
- 将窗口句柄从一个进程使用到另一个进程(插件 vst 音频)
- Win32/Gdigrab - 如何将另一个进程窗口设置为无边框
- 无法更改另一个窗口内窗口的背景颜色
- 更改如何从另一个窗口从Mainwindow接收信号
- 将文件从一个位置移至窗口C 的另一个位置
- 使用启动命令启动命令时,将命令传递到另一个 cmd 窗口
- 如何在没有窗口类的情况下编写QT系统托盘应用程序,并将其与另一个进程集成
- 具有两个窗口的C++中的应用程序.任务栏中显示的一个窗口.另一个未显示