//查询驱动
#if 0
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QStringList>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<"Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() <<"/t" << driver;
return a.exec();
}
#endif
//连接数据库
#if 0
#include <QtGui/QApplication>
#include <QtGui>
#include <QtSql>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("");
bool ok = db.open();
if(!ok){
QMessageBox::critical(0, QString::fromLocal8Bit(" 连接数据库失败!!! "), db.lastError().text());
return false;
}
else{
QMessageBox::information(0, "Tips", QString::fromLocal8Bit(" 连接数据库成功!!! "));
}
return a.exec();
}
#endif
//数据库操作
#if 1
#include <QtGui/QApplication>
#include <QtGui>
#include <QtSql>
void mysqlTest(QTextEdit &display)
{
//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("");
bool ok = db.open();
if(!ok){
QMessageBox::critical(0, QString::fromLocal8Bit(" 连接数据库失败!!! "), db.lastError().text());
}
else{
display.append(QString::fromLocal8Bit("连接数据库成功!!! "));
}
QSqlQuery query;
bool bRel;
QString strRel = QString::fromLocal8Bit("失败");
//bRel = query.exec("insert into student values ('1', '测试')");
query.prepare("insert into student (id, name) values (?, ?)");
query.addBindValue("1");
query.addBindValue(QString::fromLocal8Bit("输入"));
bRel = query.exec();
query.prepare("insert into student (id, name) values (?, ?)");
query.addBindValue("5");
query.addBindValue("test");
bRel = query.exec();
if (bRel)
{
strRel = QString::fromLocal8Bit("成功");
}
display.append(QString::fromLocal8Bit("插入数据:") + strRel);
strRel = QString::fromLocal8Bit("失败");
bRel = query.exec("select * from student");// 执行查询操作
if (bRel)
{
strRel = QString::fromLocal8Bit("成功");
}
display.append(QString::fromLocal8Bit("查询数据:") + strRel);
while(query.next())
{
int rowNum = query.at();// 获取query 所指向的记录在结果集中的编号
int columnNum = query.record().count();// 获取每条记录中属性(即列)的个数
int fieldNo = query.record().indexOf( "name");// 获取 ” name ”属性所在列的编号,列从左向右编号,最左边的编号为 0
int id = query.value(0).toInt();// 获取id 属性的值,并转换为int 型
QString name = query.value(fieldNo).toString();// 获取name 属性的值
QByteArray nameBy = query.value(fieldNo).toByteArray();// 获取name 属性的值
char *nameC = nameBy.data();
display.append("name is : " + QString::fromUtf8(nameC));
display.append("=================");
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextEdit display;
display.show();
mysqlTest(display);
return a.exec();
}
#endif