// 查找
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());
}