加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt 的sqlite数据库的学习

发布时间:2020-12-12 19:36:45 所属栏目:百科 来源:网络整理
导读:?? 我们先了解一下基本的类: QSqlDatabase 提供数据库的连接操作, QSqlQuery 是执行 Sql 语句的类,如: QSqlQuery query ( db ); . exec ( "insertintopersonvalues(101,'Danny','Young')" ); 下面是如何创建一个数据库以及一个数据表。 ? void myDatabas

void myDatabase::createDB()

{

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

<SPAN style="BACKGROUND-COLOR: #ff0000">db.setDatabaseName("music.db"); //创建数据库

</SPAN> 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,'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();

上面的代码就把数据库中的信息不加筛选的打印到控件上了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

??


我们先了解一下基本的类:QSqlDatabase 提供数据库的连接操作,QSqlQuery是执行Sql语句的类,如:

QSqlQueryquery(db);

.exec("insertintopersonvalues(101,'Danny','Young')");

下面是如何创建一个数据库以及一个数据表。

?

    推荐文章
      热点阅读