qt中的数据库可以创建在主函数中吗_Qt 数据库使用方法 mysql语句

头文件:

#include &ltQSqlDatabase&gt

#include &ltQSqlQuery&gt

#include &ltQtSql&gt

工程中需要加入

QT +=sql

数据库中的中文显示为乱码的解决方法:

在main函数中加入

#include &ltQTextCodec&gt

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

数据库常用语句:

1.创建一个数据库

bool XXX::ConnectionToDB()

{

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

db.setDatabaseName("database.db");

if(!db.open())

{

return false;

}else

{

return true;

}

}

2.当数据库打开后,就可以向里面添加表了

QSqlQuery query;

query.exec(QObject::tr("create table telephone ("

"contactID int primary key,"

"name vchar,telephones interger, address vchar)"));

3.当有了表以后,就可以向里面添加数据了

静态插入

query.exec(QObject::tr("insert into telephone values (0,'吴',152********,'西大街')"));

query.exec(QObject::tr("insert into telephone values (1,'秦',151********,'东大街')"));

query.exec(QObject::tr("insert into telephone values (2,'笑',137********,'北大街')"));

动态插入

addPerson(const int contactId,const QString name,const QString telephone ,const QString addr)

{

QSqlQuery query;

QString temp1 = QObject::tr("insert into telephone(contactID,name,telephones,address) values('%1','%2','%3','%4')").arg(contactId)

.arg(name)

.arg(telephone )

.arg(addr);

bool isok;

isok = query.exec(temp2);

}

4.查找

QSqlQuery query;

bool flag=true;

query.exec(QObject::tr("select * from telephone where name='%1'").arg("吴"));

while(query.next())

{

flag=false;

int telId_db=query.value(0).toInt();

QString name_db=query.value(1).toString();

QString telNum_db=query.value(2).toString();

QString addr_db=query.value(3).toString();

}

如果查找失败,就不会进入到while循环里面去,既flag依然为true;

5.删除

QSqlQuery query;

query.exec(QString("delete from telephone where contactID = '%1'").arg(1);

6.删除表里的全部数据

QSqlQuery query;

query.exec("delete from telephone ");

7.更新表里的内容

QSqlQuery query;

QString temp2 = QObject::tr("update telephone set telephones='%1', address='%2' where contactID='%3'").arg("1234556").arg("南大街").arg(1);

bool isok;

isok = query.exec(temp2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值