qt mysql 查询程序_Qt笔记:106 - QT 一个简单的数据库查询软件

#include#include#include#include#include#include#include#include#include#include#include#includestaticboolcreateConnection()

{

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

db.setDatabaseName(":memory:");

db.open();

QSqlQuery query;

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')");

query.exec("create table offices (id int primary key,""imagefile int,""location varchar(20),""country varchar(20),""description varchar(100))");

query.exec("insert into offices""values(0, 0, 'Oslo', 'Norway',""'Oslo is home to more than 500 000 citizens and has a""lot to offer.It has been called \"The city with the big""heart\"andthisisa nickname we are happy to live up to.')");query.exec("insert into offices""values(1, 1, 'Brisbane', 'Australia',""'Brisbane is the capital of Queensland, the Sunshine State,""where it is beautiful one day, perfect the next.""Brisbane is Australia''s 3rd largest city, being home""to almost 2 million people.')");

query.exec("insert into offices""values(2, 2, 'Redwood City', 'US',""'You find Redwood City in the heart of the Bay Area""just north of Silicon Valley. The largest nearby city is""San Jose which is the third largest city in California""and the 10th largest in the US.')");

query.exec("insert into offices""values(3, 3, 'Berlin', 'Germany',""'Berlin, the capital of Germany is dynamic, cosmopolitan""and creative, allowing for every kind of lifestyle.""East meets West in the metropolis at the heart of a""changing Europe.')");

query.exec("insert into offices""values(4, 4, 'Munich', 'Germany',""'Several technology companies are represented in Munich,""and the city is often called the \"Bavarian Silicon Valley\".""The exciting city is also filled with culture,""art and music. ')");

query.exec("insert into offices""values(5, 5, 'Beijing', 'China',""'Beijing as a capital city has more than 3000 years of""history. Today the city counts 12 million citizens, and""is the political, economic and cultural centre of China.')");

query.exec("create table images (locationid int, file varchar(20))");

query.exec("insert into images values(0, 'images/oslo.png')");

query.exec("insert into images values(1, 'images/brisbane.png')");

query.exec("insert into images values(2, 'images/redwood.png')");

query.exec("insert into images values(3, 'images/berlin.png')");

query.exec("insert into images values(4, 'images/munich.png')");

query.exec("insert into images values(5, 'images/beijing.png')");returntrue;

}

SQLBrowser::SQLBrowser(QWidget*parent):

QWidget(parent)

{

createConnection();

QPushButton*button=newQPushButton("执行");

sql=newQPlainTextEdit();

sql->setPlainText("select * from person");

table=newQTableView();

table->setSortingEnabled(true);

connect(table->horizontalHeader(),SIGNAL(sectionClicked(int)),this,SLOT(sortByColumn(int)));

QVBoxLayout*boxLayout=newQVBoxLayout(this);

QHBoxLayout*hLayout=newQHBoxLayout();

hLayout->addWidget(sql,3);

hLayout->addWidget(button,1);

boxLayout->addLayout(hLayout,1);

boxLayout->addWidget(table,3);

connect(button,SIGNAL(clicked()),this,SLOT(execute()));

model.

}voidSQLBrowser::execute()

{

model.setQuery(sql->toPlainText().trimmed());

model.setHeaderData(0,Qt::Horizontal,QObject::tr("ID"));

model.setHeaderData(1,Qt::Horizontal,QObject::tr("First name"));

model.setHeaderData(2,Qt::Horizontal,QObject::tr("Last name"));

model.setHeaderData(3,Qt::Horizontal,QObject::tr("Last name"));

table->setModel(&model);

}voidSQLBrowser::sortByColumn(intcol)

{

model.sort(col,Qt::DescendingOrder);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值