ywhzjjer |
2013-01-24 12:23 |
我试了一个连接mysql的代码: #include <QtCore/QCoreApplication> #include <QtSql> #include <QTextCodec> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); //QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QSqlDatabase dbconn=QSqlDatabase::addDatabase("QMYSQL"); //添加数据库驱动 dbconn.setDatabaseName("mytest.db"); dbconn.setUserName("root"); //用户名 dbconn.setPassword("123"); //密码 dbconn.setHostName("localhost"); //数据库所在主机的IP,此处数据库存在本地 //db.setDatabaseName("DinnerSystem"); //数据库名 dbconn.setPort(3306);//在工程目录新建一个mytest.db的文件 if(!dbconn.open()) { qDebug()<<"fdsfds"; } QSqlQuery query;//以下执行相关QSL语句 query.exec("create table student(id varchar,name varchar)"); //新建student表,id设置为主键,还有一个name项 query.exec(QObject::tr("insert into student values(1,'李刚')")); query.exec(QObject::tr("insert into student values(2,'苹果')")); query.exec(QObject::tr("insert into student values(3,'葡萄')")); query.exec(QObject::tr("insert into student values(3,'李子')")); query.exec(QObject::tr("insert into student values(4,’橘子')")); query.exec(QObject::tr("insert into student values(5,'核桃')")); query.exec(QObject::tr("insert into student values(6,'芒果')")); // query.exec(QObject::tr("select id,name from student where id>=1")); query.exec("select id,name from student where id>=1"); while(query.next())//query.next()指向查找到的第一条记录,然后每次后移一条记录 { int ele0=query.value(0).toInt();//query.value(0)是id的值,将其转换为int型 QString ele1=query.value(1).toString(); qDebug()<<ele0<<ele1;//输出两个值 } query.exec(QObject::tr("drop student")); return a.exec(); } 结果还是连接不上 E:\Qt_work\e1-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\debug\e1.exe 启动中... fdsfds QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open QSqlQuery::exec: database not open 这是什么原因 |
|