QT数据库操作

QT连接数据库,在pro文件中加上QT += sql

连接数据库

QSqlDatabase OpenDB()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    // 注意,对于express版本数据库, 一定要加\\sqlexpress这种后缀
    //    QString dsn="DRIVER={SQL SERVER};SERVER=192.168.24.71\\sqlexpress;DATABASE=wdgl";
    QString url="DRIVER={SQL SERVER};SERVER=192.168.24.71;DATABASE=wdgl";
    db.setDatabaseName(url);
    db.setUserName("sa");
    db.setPassword("sa");
    if(!db.open())
    {
        qDebug("Error:%s",qPrintable(db.lastError().text()));
        return db;
    }
    qDebug()<<"Database connected sucessfully!";
    qDebug() << "ODBC driver valid?" << db.isValid();//连接成功输出true
    QSqlQuery query;
    return db;
}


增删改操作

QSqlQuery query;
    qDebug()<<query.exec("insert into wdgl_user (note,password,username)values('user...','123456','admin')");//执行成功输出true

qDebug()<<query.exec("delete from wdgl_user where user_id = 1");//执行成功显示true
qDebug()<<query.exec("update wdgl_user set username = 'umgsai' where user_id = 2");//执行成功显示true

查询操作

void MainWindow::on_pushButton_clicked()
{
    QSqlQueryModel *model = new QSqlQueryModel;
    model->setQuery("select * from wdgl_user");
    model->setHeaderData(0, Qt::Horizontal, tr("用户id"));
    model->setHeaderData(1, Qt::Horizontal, tr("用户说明"));
    model->setHeaderData(2, Qt::Horizontal, tr("密码"));
    model->setHeaderData(3, Qt::Horizontal, tr("用户名"));
    QTableView *view = new QTableView;//弹出对话框
    view->setGeometry(200,200,450,800);
    view->setWindowTitle("用户列表");
    view->setMinimumSize(450,800);//设置不可改变大小
    view->setMaximumSize(450,800);
    view->setModel(model);
    view->show();
}


你可能感兴趣的:(error,连接数据库,数据库操作)