Qt操作sqlserver数据库

由于数据库实验作业规定必须要做可视化界面,所以摸鱼怪也只好继续肝 Qt 了 (;´༎ຶД༎ຶ`)

准备工作

这里的准备工作就是就是建数据库、建表、然后就是在控制面板配置 ODBC 数据源

准备内容与以前写的 VS2017操做sql server数据库 准备内容一样(除了代码操作部分)

本文也依照VS2017操做sql server数据库里的例子,列出操作的主要代码

代码实现部分

  1. 首先需要在新建的 Qt 工程里的 .pro 文件里引入:QT =+ sql

  2. 连接数据库

    #include "mainwindow.h"
    #include <QApplication>
    #include <QDebug>
    #include <QMessageBox>
    #include <QSqlError>
    #include <QSqlDatabase>
    #include <QSqlQuery>
    
    void load_Database()
    {
        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");//数据库驱动类型位sqlserver 
    	db.setHostName("localhost");        //选择本地主机,或则127.0.0.1
    	db.setDatabaseName("haha");       //设置数据库名称
    	db.setUserName("用户名");       //登录用户
    	db.setPassword("密码");     //密码
    	if(!db.open())      //打开数据库失败
    	{
    		qDebug()<<db.lastError().text();
        	QMessageBox::critical(0,QObject::tr("Database error"),db.lastError().text());
    	}
    	else
    	{
    		qDebug()<<"database open success!";
    	}
    }
    

注意:用户名和密码要改为自己的用户和密码哦,本文续用的上个例子数据库 “haha”,记得换为自己的哦!

  1. 插入数据

    void insert_value()
    {
        QString str = QString("insert into student values(%1, '%2', %3)").arg(666).arg("宝儿姐").arg(20);
        QSqlQuery query;
        query.exec(str);
    }
    

    向 “haha” 数据库 student 表插入 一行数据,或则用 prepare()函数向数据库插入数据:

    void insert_value_1()
    {    QSqlQuery query;
        query.prepare("insert into student(ID,name,age) values(:ID,:name,:age)");
        query.bindValue(":ID",666666);		//按照标识符绑定值
        query.bindValue(":name","阿尔托莉雅");
        query.bindValue(":age",20);
        query.exec();
    }
    
  2. 查询数据

    void search_value()
    {
        QSqlQuery query;
        query.exec("select * from student");
        while(query.next())	//循环输出
        {
            qDebug()<<query.value(0).toInt()<<query.value(1).toString()<<query.value(2).toInt();
        }
    }
    

    查询 student 里所有数据:

  3. 修改数据

    void update_value()
    {
        QString str = QString("update student set name = '%1' where ID = %2").arg("zero-two").arg(666);
        QSqlQuery query;
        query.exec(str);
    }
    

    更新数据将 ID 为 666 的 name 修改为 “zreo-two”;

  4. 删除数据

    void delete_value()
    {
        QString str = QString("delete from student where ID = %1").arg(666);
        QSqlQuery query;
        query.exec(str);
    }
    

    删除 ID 为 666 的数据:

修改、查询、删除也可以用 QSqlQuery 里的 prepare() 函数实现,步骤如同插入数据的第二种方法一样,只需修改一下sql语句。增删改查的功能已经实现,之后就是用 Qt 自带的控件获取数据信息,然后进一步实现可视化功能。

猜你喜欢

转载自blog.csdn.net/xwmrqqq/article/details/106198090