先看源代码
#include <QtGui/QApplication>
#include "widget.h"
#include <string.h>
#include <QTextEdit>
#include <QTextCodec>
#include <QtSql/QSQLiteDriver>
#include <QtSql/QSqlDatabase>
#include <QtSql/qsql.h>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextEdit disp;
disp.resize(600,400);
disp.show();
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydb");
if(!db.open())
{
qDebug()<<db.lastError();
return 1;
}
else
{
QSqlQuery query(db);
query.exec("creat tabel person(id int primary key,firstname varchar(20),lastname varchar(20)) ");
query.exec("INSERT INTO person (id,firtname,lastname)"
"VALUES (1,'zhang','1')");
query.exec("INSERT INTO person (id,firtname,lastname)"
"VALUES (2,'ZHT','12')");
query.exec("INSERT INTO person (id,firtname,lastname)"
"VALUES (3,'SW','11')");
query.exec();
//if(query.exec("select * from person"))
query.first();
// while(query.next())
{
QString result=query.value(0).toString()+"___"+query.value(1).toString()+query.value(2).toString();
disp.append(result);
}
}
return a.exec();
}
报告的警告是:QSqlQuery::value: not positioned on a valid record
说我value()值无效,怀疑是没有写进数据库内。请高手看下。
------解决方案--------------------------------------------------------
写没写成功,你打开sqlite表不就看到了? solaris有sqlite工具,windows肯定也有的。
你的代码我标注为红色的去去掉,那句没什么意思
QSqlQuery query(db);
query.exec("creat tabel person(id int primary key,firstname varchar(20),lastname varchar(20)) ");
query.exec("INSERT INTO person (id,firtname,lastname)"
"VALUES (1,'zhang','1')");
query.exec("INSERT INTO person (id,firtname,lastname)"
"VALUES (2,'ZHT','12')");
query.exec("INSERT INTO person (id,firtname,lastname)"