QTday6

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    if(db.contains())
    {
        //说明数据库存在
    }
    else
    {
        //说明数据库不存在
        db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("stuinfo.db");
        QMessageBox::information(this,"","创建数据库成功");
    }
    //打开数据库
    if(!db.open())
    {
        QMessageBox::information(this,"","打开数据库失败");
        return;
    }
    QSqlQuery query;
    //准备sql语句
      QString sql = "create table if not exists stu_info_table("
                    "id integer primary key autoincrement,"
                    "numb integer,"
                    "name varchar(20),"
                    "sex varchar(4),"
                    "score integer)";
      //执行sql语句
      if(query.exec(sql))
      {
          QMessageBox::information(this,"","创建数据表成功");
      }
      else
      {
          QMessageBox::information(this,"","创建数据表失败");
      }
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_addButton_clicked()
{
   int numb = ui->numberEdit->text().toUInt();
   QString name = ui->nameEdit->text();
   QString sex = ui->sexEdit->text();
   int chengji = ui->chengjiEdit->text().toUInt();
   if(numb==0||name.isEmpty()||sex.isEmpty()||chengji==0)
   {
       QMessageBox::information(this,"","请将信息填写完整");
       return;
   }
   QSqlQuery query;
   //准备sql语句
       QString sql = QString("insert into stu_info_table(numb,name,sex,score) "
                             "values(%1,'%2','%3',%4)")
                               .arg(numb).arg(name).arg(sex).arg(chengji);

       //执行sql语句
       if(query.exec(sql))
       {
           QMessageBox::information(this,"","添加成功");
       }
       else
       {
           QMessageBox::information(this,"","添加失败");
       }

}

void Widget::on_showButton_clicked()
{
    QSqlQuery query;
    QString sql = "select * from stu_info_table";
    if(query.exec(sql))
    {
        int i=0;
        while(query.next())
        {
            for(int j=0;jtableWidget->setItem(i,j,new QTableWidgetItem(query.value(j+1).toString()));
            }
            i++;
        }
    }
}

void Widget::on_delButton_clicked()
{
    QSqlQuery query;

     int ret = QMessageBox::information(this,
                "选择",
                "删除全部吗",
                QMessageBox::Yes|QMessageBox::No);
     if(ret == QMessageBox::Yes)
     {
         QString sql = "delete * from stu_info_table";
         if(query.exec(sql))
         {
             QMessageBox::information(this,"","删除成功");
         }
         else
         {
             QMessageBox::information(this,"","删除失败");
         }

     }
     else
     {
         QString sql = "delete * from stu_info_table where id=1";
         if(query.exec(sql))
         {
             QMessageBox::information(this,"","删除成功");
         }
         else
         {
             QMessageBox::information(this,"","删除失败");
         }
     }

}

void Widget::on_seachButton_clicked()
{
    QString wd = ui->seachEdit->text();
    QSqlQuery query;
    int ret = QMessageBox::information(this,
               "选择",
               "显示所有查找结果吗",
               QMessageBox::Yes|QMessageBox::No);

    if(ret == QMessageBox::Yes)
    {

        QString sql = "select * from stu_info_table where name ='"+ wd +"'";
        if(query.exec(sql))
        {
            QMessageBox::information(this,"","查找成功");
            int i=0;
            while(query.next())
            {
                for(int j=0;jtableWidget->setItem(i,j,new QTableWidgetItem(query.value(j+1).toString()));
                }
                i++;
            }
        }
        else
        {
            QMessageBox::information(this,"","查找失败");
        }

    }
    else
    {
         QString sql = "select * from stu_info_table where name ='"+ wd +"'and id < 2";
        if(query.exec(sql))
        {
            QMessageBox::information(this,"","查找成功");
            int i=0;
            while(query.next())
            {
                for(int j=0;jtableWidget->setItem(i,j,new QTableWidgetItem(query.value(j+1).toString()));
                }
                i++;
            }
        }
        else
        {
            QMessageBox::information(this,"","查找失败");
        }
    }
}

你可能感兴趣的:(qt,开发语言)