我们先了解一下基本的类:QSqlDatabase 提供数据库的连接操作,QSqlQuery是执行Sql语句的类,如:
QSqlQueryquery(db);
query.exec("insertintopersonvalues(101,\'Danny\',\'Young\')");
下面是如何创建一个数据库以及一个数据表。
void myDatabase::createDB()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("music.db"); //创建数据库
if(!db.open())
{
qDebug()<< "database is error";
//return;
}
else
{
qDebug()<<"database is ok";
//return;
}
QSqlQuery query(db);
bool bsuccess =
query.exec("create table person (id int primary key, "
"firstname varchar(20), lastname varchar(20))"); //创建一个表
query.exec("insert into person values(101, \'Danny\', \'Young\')");
query.exec("insert into person values(102, \'Christine\', \'Holand\')");
query.exec("insert into person values(103, \'Lars\', \'Gordon\')");
query.exec("insert into person values(104, \'Roberto\', \'Robitaille\')");
query.exec("insert into person values(105, \'Maria\', \'Papadopoulos\')");
if(!bsuccess)
{
qDebug()<< "table is error";
}
else
{
qDebug()<<"table is ok";
}
//query.exec("INSERT INTO persons VALUES (\'xue\',\'chao\',\'langfang\')");
//db.close();
}
当然我们一定要记住这个顺序,先创建数据库,然后再去创建一个表(作为菜鸟的我犯这个错误了),还有一点需要注意的红色标记的那句话,我参考的数籍一般都这样写
db.setDatabaseName(":memory:");
这样就把生成的数据库文件是在内存当中的,在工程文件目录下找不到。
上面使我们创建了一个数据库和一个表,那么我们如何把它呈现在我们的QTableview部件上呢?
QSqlTableModel *model = new QSqlTableModel; model->setTable("person"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select(); ui->tableView->setModel(model); ui->tableView->show();
上面的代码就把数据库中的信息不加筛选的打印到控件上了。
第一次写博客大家多多包涵。。。