㈠ QT 简单数据库操作
看你的create语句中time varchar(20)),..这边多了一个 ) ,可能导致建的表中实际只有两个字段:id和time。
然后你又插入了4个字段,所以参数个数错误。。
㈡ qt操作sqlite 如何使用vacuum命令
qt操作sqlite 如何使用vacuum命令?
使用Qt操作SQLite,可以使用QSqlQuery对象来执行VACUUM命令。例如:
// 创建一个数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("mydb.sqlite"); if(!db.open()) { qDebug() << "Error: connection with database fail"; } else { qDebug() << "Database: connection ok"; } // 执行 VACUUM 命令 QString queryStr = "VACUUM;"; QSqlQuery query(queryStr, db); if (!query.exec()) { qDebug() << "Error: Vacuum failed" ; } else { qDebug() << "Vacuum successful!" ; }
㈢ 请教高手如何使用QT建立SQLite数据库啊急!!
QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); //添加数据库驱动
db.setDatabaseName(“:XXX:”); //数据库连接命名
if(!db.open()) //打开数据库
return false;
QSqlQuery query; //以下执行相关QSL语句
query.exec(“create table student(id int primary key,name varchar)”);
//添加数据
query.exec(“insert into student values(1,'小明')”);
主要靠QSqlTableModel,QSqlQueryModel 模型就可以了,剩下的就是细节问题了
㈣ qt中创建数据库sqlite名为mysql.db,向mysql.db中插入数据,不成功
你看看你的sql语句有没有问题,把sql语句打出来
那你用一个sql连接工具看看,用命令行好像你这样写是新建数据库sql.db的意思,打开的不是这样的好像。你用工具看吧
㈤ 怎样在Qt下连接读写sqlite数据库
这里以学生信息的录入与读取来作为演示,主要目的是演示数据库的操作,至于数据的显示等不在演示范围内,请您自行研究。
首先,在Qt中建立一个图形界面的程序项目。
然后,我们在命令行下用sqlite命令创建了数据库 C:\StudentInfo\sutdentdata.db,并且建立了一个数据库表student,该表有四个字段ID、Name、Sex、Age,未向表中添加任何数据。
关于sqlite的简单使用,可以参考我们的另一篇经验。
2SQLite的简单使用方法
在读写SQLite数据库中,我们最主要用到的是QSqlDatabase类及QSqlQuery类,前者负责创建数据库连接并打开数据库,后者负责执行查询操作。实际上前者也可以进行查询操作并将结果返回给QSqlQuery对象,但是Qt并不建议这么做。
在干活前,依然是先看看Assitant,这是培养独立解决问题的一个好习惯。
好,下面给 录入 按钮的点击事件编写代码。关于如何给按钮的某一事件进行编码,可以参考我们另一篇经验。
首先在.pro文件中加上sql,然后别忘了#include <QSqlDatabase>以及#include <QSqlQuery>。
好了,下面在录入按钮的槽中加入如下代码:
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","wconntosqlite");
mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");
if(mydb.open())
{
QSqlQuery query(mydb);
QString sqlstr="insert into student (ID,Name,Sex,Age) values ('"
+ui->le_id->text()+"','"
+ui->le_name->text()+"','"
+ui->le_sex->text()+"',"
+ui->le_age->text()+")";
bool isok=query.exec(sqlstr);
if(isok)
qDebug()<<"数据写入成功";
}
上面我们先调用了QSqlDatabase的静态函数addDatabase创建了一个名为wconntosqlite的连接。然后给其传递数据库名称。
如果数据库打开成功,就创建一个关联的QSqlQuery对象,最后由QSqlQuery来执行插入数据工作。
特别注意:QSqlQuery对象的创建必须在mydb open成功以后才行,否则会出错。
我们来看看效果如何。
4c++怎么做界面
我们接着来写查询按钮的代码,输入以下代码:
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntosqlite");
mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");
if(mydb.open())
{
QSqlQuery query(mydb);
QString sqlstr="select * from student";
bool isok=query.exec(sqlstr);
if(isok)
qDebug()<<"数据读取成功";
query.first();
QString result="学号:"+query.value(0).toString()+" "
+"姓名:"+query.value(1).toString()+" "
+"性别:"+query.value(2).toString()+" "
+"年龄:"+query.value(3).toString();
ui->lbl_query->setText(result);
}
与写入数据基本差不多,这里需要特别注意的是query.first();。看看Assistant怎么说的就知道了。原来,query对象在执行完查询语句后,query的位置被置于一个不可用的位置,如果想从query中获取数据,需要设置query到一个可用的记录中才行。方法有好几种,这里我们用了first()成员函数。
好,来看看运行结果。
可以看到软件读取的数据与控制台窗口的数据是一致的。
我们来总结下Qt操作SQLite数据库的五步走法决:
第一步,建立一个连接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
第二步,关联数据库文件:db.setDatabaseName("这里你的数据库文件路径")
第三步,打开数据库:db.open()
第四步,如果数据库打开成功,就建立一个相关联的QSqlQuery对象:QSqlQuery query(db)
第五步,执行SQL语句:query.exec("你的SQL语句字符串")
㈥ qtsqlite可以并行写多个表数据吗
qtsqlite可以并行写多个表数据。qtsqlite数据库文件之中对表的个数没有限制,只要你的硬盘空间足够大,你想建立多少个表都可以。SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。