网上有太多的方法,但是找了半天还是不行,但是配置好之后用QT Creator连接
数据库可以,用VS2008还是不行。
最后有人说直接运行也是OK的,参考:
http://www.qtcn.org/bbs/read-htm-tid-51060-displayMode-1-page-1.html#140264。步骤如下:Qt SDK上已经成功运行。  
1安装有QtCreator 或Qt SDK能直接运行.pro  
2.文件夹下C:\Qt\4.7.3\src\plugins\sqldrivers\mysql的mysql.pro
增加两行代码: 
INCLUDEPATH+=C:/MySQL/include
LIBS += -LC:/MySQL/lib/ -llibmysql  
上面指示路径"C:/MySQL"是新建目录
文件夹,里面东西从MySQL的
安装路径考出
本例安装的是MySQL 5.5,安装路径为"C:\Program Files\MySQL\MySQL Server 5.5"考出“include和lib”放在新建目录文件夹“C:/MySQL”下。  
3.之后直接运行mysql.pro,出现QtCreator界面,选择Qt版本,
 此处选择了Qt 4.7.3,进行调试和发布个运行一次。
4.在C:\Qt\4.7.3\src\plugins\sqldrivers\mysql路径下,出现debug和release两个文件夹,把debug里面的qsqlmysqld4.lib和qsqlmysqld4.dll release文件夹下的qsqlmysql4.dll和qsqlmysql4.lib放到
C:\Qt\4.7.3\plugins\sqldrivers文件夹下。
5.将MySQL/ lib文件夹下的libmysql.dll考到要使用的Qt版本的bin处。    
如果是Vs2008+Qt,那么上面选择Qt版本是vs2008的qt版本。
其他步骤一样  
工具选项,手动添加

项目构建设置再次设置。就可以了
注意:此处测试程序中,DatabaseName("test")已在MySQL数据库中建好。MySQL数据库UserName为root密码123456.测试程序    
- #include <QtGui/QApplication>
 - #include "mainwindow.h"
 - #include <QtSql>
 - #include <QString>
 - #include <QSqlRecord>
 - #include <QDebug>
 - void openDb()
 - {
 -     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
 -     db.setHostName("localhost");
 -     db.setDatabaseName("test"); //test为Mysql中的schema名
 -     db.setUserName("root");
 -     db.setPassword("123456");
 -     bool ret = db.open();
 -     if (ret)
 -     {
 -         qDebug("open db ok");
 -     }
 -     else
 -     {
 -         qDebug("open db failed");
 -         qDebug() << db.lastError().text();
 -     }
 -     qDebug()<<"Begin";
 - //    QSqlQuery query;
 - ////    query.exec(QObject::tr("create table student(sno varchar(10) not null primary key,sname varchar(20) not null,sclass varchar(10) not null)"));
 - ////    query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009001','lilei','0901')"));
 - ////    query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009002','lucy','0902')"));
 - ////    query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009003','mike','0903')"));
 - //    query.exec("select * from student");
 - //    qDebug()<<"sno    sname   sclass";
 - //    while(query.next())
 - //    {
 - //        qDebug()<<query.value(0).toString()<<"  "<<query.value(1).toString()<<" "<<query.value(2).toString();
 - //    }
 - //    qDebug()<<"End";
 -     QSqlQuery query("select sname from student",db);
 -     QSqlRecord rec=query.record();
 -     while(query.next())
 -     {
 -         rec=query.record();
 -         int snocol=rec.indexOf("sname");
 -         QString value=query.value(snocol).toString();
 -         qDebug()<<"sno :"<<value;
 -     }
 -     query.clear();
 -     db.close();
 -     qDebug()<<"End";
 - }
 - int main(int argc, char *argv[])
 - {
 -     QApplication a(argc, argv);
 -     openDb();
 - //    MainWindow w;
 - //    w.show();
 -     return a.exec();
 - }
 
   运行结果:
 但是同样的程序在VS2008下就
出错了,同样的都是使用vs2008下的qt4.7.3,其他程序是一样的,为什么呢?