日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

40数据库练习

發布時間:2024/3/12 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 40数据库练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

例子解析:

連接數據庫,將數據庫的數據映射到設計器,可以在設計器中進行買賣操作,或添加車輛。確定后更新到數據庫,右方顯示賣車記錄。

?

?

數據庫數據

用于廠家的組合框

?

?

用于各數據的查詢,通過廠家和品牌為標識

?

?

?

?

?

?

源代碼:

mainwindow.h

?

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

?

#include <QMainWindow>

?

namespace Ui {

class MainWindow;

}

?

class MainWindow : public QMainWindow

{

??? Q_OBJECT

?

public:

??? explicit MainWindow(QWidget *parent = 0);

??? ~MainWindow();

?

??? void connectDB();?? //連接數據庫

??? void initData();??? //初始化數據庫

?

private slots:

??? void on_menuCar_triggered();

?

??? void on_menuCalc_triggered();

?

??? void on_factory_currentIndexChanged(const QString &arg1);

?

??? void on_brand_currentIndexChanged(const QString &arg1);

?

??? void on_num_valueChanged(int arg1);

?

??? void on_sure_clicked();

?

??? void on_cancel_clicked();

?

private:

??? Ui::MainWindow *ui;

};

?

#endif // MAINWINDOW_H

?

?

mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QtSql/QSqlDatabase>

#include <QtSql/QSqlError>

#include <QMessageBox>

#include <QtSql/QSqlQueryModel>

#include <QtSql/QSqlQuery>

?

#include <QDebug>

?

MainWindow::MainWindow(QWidget *parent) :

??? QMainWindow(parent),

??? ui(new Ui::MainWindow)

{

??? ui->setupUi(this);

??? //初始開始頁面 車輛管理

??? MainWindow::on_menuCar_triggered();

?

??? MainWindow::connectDB();

??? MainWindow::initData();

}

?

MainWindow::~MainWindow()

{

??? delete ui;

}

?

//車輛管理菜單

void MainWindow::on_menuCar_triggered()

{

??? ui->stackedWidget->setCurrentWidget(ui->car);

??? ui->label->setText("車輛管理");

}

//銷售統計菜單

void MainWindow::on_menuCalc_triggered()

{

??? ui->stackedWidget->setCurrentWidget(ui->calc);

??? ui->label->setText("銷售統計");

}

?//連接數據庫

void MainWindow::connectDB()

{

??? QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");

??? db.setHostName("127.0.0.1");

??? //db.setPassword("1234");

??? db.setUserName("root");

??? db.setDatabaseName("car");

?

?

??? if(!db.open())

??? {

??????? QMessageBox::warning(this,"數據庫打開失敗",db.lastError().text());

??????? return ;

??? }

?

}

//初始化數據庫

void MainWindow::initData()

{

??? //新建模型

??? QSqlQueryModel *queryModel=new QSqlQueryModel(this);

??? queryModel->setQuery("SELECT sname FROM factory;");

?

??? ui->factory->setModel(queryModel);

?

??? ui->lastnum->setText("0");

??? ui->allprice->setEnabled(false);

}

?

?

//廠家組合框槽函數

void MainWindow::on_factory_currentIndexChanged(const QString &arg1)

{

? ??if(arg1=="changjia")

??? {

??????? ui->brand->clear();

??????? ui->price->clear();

??????? ui->num->setValue(0);

??????? ui->allprice->clear();

??????? ui->lastnum->setText("0");

??????? ui->sure->setEnabled(false);

??? }

??? else

??? {

??????? ui->brand->clear();

??????? QSqlQuery query;

??????? QString sql=QString("SELECT sname FROM brand WHERE factory ='%1'").arg(arg1);

??????? //SELECT sname FROM brand WHERE factory ='yiqi';

??????? //執行SQL語句

??????? query.exec(sql);

??????? //獲取內容

??????? while(query.next())

??????? {

??????????? QString name=query.value(0).toString();

??????????? ui->brand->addItem(name);

??????? }

??? }

}

//品牌組合框槽函數

void MainWindow::on_brand_currentIndexChanged(const QString &arg1)

{

??? QSqlQuery query;

??? QString sql=QString("SELECT price,llast FROM brand WHERE factory ='%1'"

??????????????????????? "AND sname='%2'").arg(ui->factory->currentText()).arg(arg1);

??? //SELECT price FROM brand WHERE factory ='yiqi' AND sname='aodi';

??? //執行SQL語句

??? query.exec(sql);

??? //獲取內容

??? while(query.next())

??? {

??????? //報價

??????? int price=query.value("price").toInt();

??????? //剩余數目

??????? int last=query.value("llast").toInt();

?

??????? //更新

??????? ui->price->setText(QString::number(price));

??????? ui->lastnum->setText(QString::number(last));

??? }

}

//數據選擇框槽函數

void MainWindow::on_num_valueChanged(int arg1)

{

??? //更新剩余數量

??? //1)廠家

??? QString factoryStr=ui->factory->currentText();

??? //2)品牌

??? QString brandStr=ui->brand->currentText();

?

??? if(arg1==0)

??? {

??????? ui->sure->setEnabled(false);

??? }

??? else

??? {

???????? ui->sure->setEnabled(true);

??? }

?

??? //獲取數據庫剩余數量

??? QSqlQuery query;

??? QString sql=QString("SELECT ssum,llast FROM brand WHERE factory ='%1'"

??????????????????????? "AND sname='%2'").arg(factoryStr).arg(brandStr);

??? int lastnum=0;

??? //執行SQL語句

??? query.exec(sql);

??? while(query.next())

??? {

??????? //剩余數目

??????? lastnum=query.value("llast").toInt();

??? }

??? //選擇數大于剩余數目

??? if(arg1>lastnum)

??? {

??????? ui->num->setValue(lastnum);

??????? return;

??? }

??? //更新剩余數量

??? int tempnum=lastnum-arg1;

??? ui->lastnum->setText(QString::number(tempnum));

?

??? //金額

??? int price=ui->price->text().toInt();

??? int sum=price*arg1;

??? ui->allprice->setText(QString::number(sum));

?

}

//確定按鈕

void MainWindow::on_sure_clicked()

{

??? //獲取信息

??? //1)銷售數據

??? int num=ui->num->value();

??? //2)剩余數目

??? int last=ui->lastnum->text().toInt();

?

??? //獲取數據庫的銷量

??? QSqlQuery query;

??? QString sql=QString("SELECT sell,price FROM brand WHERE factory ='%1'"

? ??????????????????????"AND sname='%2'").arg(ui->factory->currentText()).arg(ui->brand->currentText());

??? //SELECT sell FROM brand WHERE factory ='yiqi' AND sname='oudi';

??? //執行SQL語句

??? query.exec(sql);

?

??? int sell=0,price=0;

??? //獲取內容

??? while(query.next())

??? {

??????? //銷量

??????? sell=query.value("sell").toInt();

??????? //單價

??????? price=query.value("price").toInt();

??? }

?

??? sell+=num;

?

??? //更新數據庫,剩余數量、銷售總量

??? sql=QString("UPDATE brand SET sell=%1,llast=%2 where factory='%3' "

??????????????????????? "AND sname='%4'")

??????????????????????? .arg(sell)

??????????????????????? .arg(last)

??????????????????????? .arg(ui->factory->currentText())

??????????????????????? .arg(ui->brand->currentText());

??? query.exec(sql);

???

??? //銷售記錄

??? QString str=QString("廠家:%1,品牌:%2,銷售了%3輛,單價%4萬元,總價%5萬元")

??????????????? .arg(ui->factory->currentText())

??????????????? .arg(ui->brand->currentText())

??????????????? .arg(num)

??????????????? .arg(price)

??????????????? .arg(num*price);

??? ui->info->append(str);

?

??? //更新數據庫后

??? ui->sure->setEnabled(false);

??? MainWindow::on_cancel_clicked();

?

?

}

//取消按鈕

void MainWindow::on_cancel_clicked()

{

??? //MainWindow::on_factory_currentIndexChanged("changjia");

??? ui->factory->setCurrentIndex(0);

??? ui->lastnum->setText("0");

}

?

?

結果圖:

?

?

?

被修改了

?

?

轉載于:https://www.cnblogs.com/gd-luojialin/p/9215912.html

總結

以上是生活随笔為你收集整理的40数据库练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。