1,新建一个工程,设计 UI界面
2,创建数据库
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// 创建数据库
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("myDB.db");
// 打开数据库
if(!db.open())
{
qDebug() << "open db error!" << db.lastError();
}
}
数据库文件创建成功!
3,创建表
// 创建表
QString sqlCreate = QString("create table student"
"(id integer primary key autoincrement,"
"num double,"
"name varchar(20),"
"score double);");
if(!query.exec(sqlCreate))
{
qDebug() << "create table error!" << db.lastError();
}
表创建成功!
4,往表里插入数据
void Widget::on_pushButton_insert_clicked()
{
QString namestr = ui->lineEdit_name->text();
int num = ui->lineEdit_number->text().toInt();
double score = ui->lineEdit_score->text().toDouble();
QString str =
QString("insert into student(num, name, score) "
"values('%1', '%2', '%3')").arg(num).arg(namestr).arg(score);
QSqlQuery query;
if(!query.exec(str))
{
qDebug() << "insert error!" << db.lastError();
}
else
{
ui->textEdit->setText("插入成功");
}
}
5,删除数据
void Widget::on_pushButton_delete_clicked()
{
QString name = ui->lineEdit_name->text();
QString str = QString("delete from student where name = '%1'").arg(name);
QSqlQuery query;
if(!query.exec(str))
{
qDebug() << "delete error!" << db.lastError();
}
else
{
ui->textEdit->append("删除成功");
}
}
6,修改数据
void Widget::on_pushButton_modify_clicked()
{
QString namestr = ui->lineEdit_name->text();
int num = ui->lineEdit_number->text().toInt();
double score = ui->lineEdit_score->text().toDouble();
QString str =
QString("update student set "
"num = '%1' , score = '%2' where name = '%3'")
.arg(num).arg(score).arg(namestr);
QSqlQuery query;
if(!query.exec(str))
{
qDebug() << "modify error!" << db.lastError();
}
else
{
ui->textEdit->append("修改成功");
}
}
7,查询
void Widget::on_pushButton_query_clicked()
{
QString namestr = ui->lineEdit_name->text();
QString str = QString("select *from student where name = '%1'")
.arg(namestr);
QSqlQuery query;
if(!query.exec(str))
{
qDebug() << "find error!" << db.lastError();
}
else
{
ui->textEdit->append("查询成功");
}
while (query.next())
{
ui->textEdit->append("查询结果输出:");
ui->textEdit->append(query.value(0).toString());
ui->textEdit->append(query.value(1).toString());
ui->textEdit->append(query.value(2).toString());
ui->textEdit->append(query.value(3).toString());
}
}