商品信息功能 查找 为什么实现不了

// 查找
void MainWindow::searchdata()
{
QString sqlstr;
sqlstr = "select * from commodity where number = "+ui->lineEdit->text();
qDebug()< query.exec(sqlstr);
query1.next();
ui->lineEdit->setText(query.value(0).toString());
ui->lineEdit_2->setText(query.value(1).toString());
//ui->lineEdit_3->setText(query.value(2).toString());
ui->lineEdit_4->setText(query.value(3).toString());
}

这有很多可能性,比如你的数据库链接的问题,表、字段的问题,根本没有这个记录,类型不对

建议你参考 http://blog.csdn.net/liuligui5200/article/details/46966199 这个完整的例子

1.你这个代码没贴你连接数据库的部分,首先要确保你连接数据库是可以的
2.你执行SQL语句的地方也有问题,你应该是query.next();而不是query1.next();吧?

下面我以MYSQL为例:

 QSqlDatabase data_base;
    if(QSqlDatabase::contains("qt_sql_default_connection"))
      data_base = QSqlDatabase::database("qt_sql_default_connection");
    else
      data_base = QSqlDatabase::addDatabase("QMYSQL");
    data_base.setHostName(database_info[0]);  //设置主机地址
    data_base.setPort(3306);  //设置端口
    data_base.setDatabaseName(database_info[1]);  //设置数据库名称
    data_base.setUserName(database_info[2]);  //设置用户名
    data_base.setPassword(database_info[3]);  //设置密码
    if(!data_base.open())
    {
        qDebug() << "mysql connect failed!";
    }
    else
    {
        QSqlQuery query;
        QString sqlstr;
        sqlstr = "select * from commodity where number = "+ui->lineEdit->text();
        qDebug()< query.exec(sqlstr);
        query.next();
        ui->lineEdit->setText(query.value(0).toString());
        ui->lineEdit_2->setText(query.value(1).toString());
        //ui->lineEdit_3->setText(query.value(2).toString());
        ui->lineEdit_4->setText(query.value(3).toString());
    }