Qt访问MySQL

#include <QtCore>

#include <QtGui>

#include <QtSql>

 

#include "widget.h"

 

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

 

    QTextEdit display;

    display.resize(400, 160);

    display.show();

 

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

    db.setHostName("localhost");

    db.setDatabaseName("example");

    db.setUserName("root");

    db.setPassword("root");

 

    bool ok = db.open();

    if (ok) {

        QSqlQuery query;

 

        query.exec("insert into employee values('5', '诸葛', '流云', '2010-06-09', '666')");

 

        if (query.exec("select * from employee")) {

            int numRows = 0;

 

            if (db.driver()->hasFeature(QSqlDriver::QuerySize)) {

                numRows = query.size();

            } else {

                query.last();

                numRows = query.at() + 1;

            }

 

            QString id, lname, fname, phone;

            QDateTime dob;

            display.append("=================================");

            display.append(QString::fromLocal8Bit("ID     |  姓名   |  生日  | 电话  "));

            display.append("*********************************");

            while (query.next()) {

                id = query.value(0).toString();

                //lname = QString::fromLocal8Bit(query.value(1).toByteArray());

                lname = query.value(1).toString();

                //fname = QString::fromLocal8Bit(query.value(2).toByteArray());

                fname = query.value(2).toString();

                dob = query.value(3).toDateTime();

 

                //phone = QString::fromLocal8Bit(query.value(4).toByteArray());

                phone = query.value(4).toString();

                QString result = id + "    " + fname + lname + "   " + dob.toString() + "   " + phone;

                display.append(result);

            }

                display.append("===============================");

                display.append(QString("Total %1 rows").arg(numRows));

        } else {

            QSqlError error = query.lastError();

            display.append("From mysql database: " + error.databaseText());

        }

    } else {

        display.append("Cann't open database!");

        display.append("Reason: " + db.lastError().databaseText());

    }

 

    display.append(QString::fromLocal8Bit("你好"));

 

    return a.exec();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值