Qt 数据库查询数据在表中显示
我建立了一个数据库,数据库中的内容显示在表一中,然后建立了一个查询的按钮,现在要实现的是查询数据库后的数据在另外一张表表2中显示怎么做,求大神指导
[解决办法]
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=203.88.208.89;DATABASE=DB10762");
//设置主机和数据库名
db.setDatabaseName(dsn);
//即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤
db.setUserName("DB10762");
db.setPassword("72bac2");
if(!db.open()) {
qDebug() << "NO";
return;
}
qDebug() << "YES";
QSqlTableModel *model = new QSqlTableModel;
QTableView * view = new QTableView();
view->setModel(model);
view->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置成不可编辑
执行SQL语句:
QSqlQuery query = model->query();
model->setQuery("select * from stu");
model->setHeaderData(0, Qt::Horizontal, tr("id"));
model->setHeaderData(1, Qt::Horizontal, tr("name"));
[解决办法]
我的第一反应估计是和楼主的解决方法一样:
QSqlQuery up;
up.prepare("select * from ...where name=:dname");
QString str2=QString("%1").arg(login);
up.bindValue(":dname",str2);
up.exec();
QSqlRecord rec=up.record();
while(up.next())
{
rec=up.record();
int spassword=rec.indexOf("password");
QString value=up.value(spassword).toString();
}
if(value==password)
{
QStringstr=QString("insert into ...(name,password)values(%1,%2)").arg(zhanghao).arg(mima);
query.exec(str);
}
else
{
QMessage::warning(...);
}
四楼的方法有时间我得学学~~