用如下代码测试连接数据库并测试写入、读出数据是否成功,并测试数据是否乱码。
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //设置tr()编码。
QSqlQueryModel *model;
QTableView *table=new QTableView;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost"); //数据库服务器
db.setDatabaseName("test"); //数据库名
db.setUserName("root"); //登录名
db.setPassword("123456"); //密码
if(db.open())
{
QMessageBox::information(0,QObject::tr("信息"),
QObject::tr("数据库连接成功"));
QSqlQuery query;
query.exec(QObject::tr("INSERT INTO bbb VALUES ('柯南')"));
query.exec("SELECT name FROM testTable");//name为属性名;
//testTable为表名
model=new QSqlQueryModel;
model->setQuery(query);
model->setHeaderData(0, Qt::Horizontal, QObject::tr("姓名"));
table->setModel(model);
table->show();
}
else
{
// 数据库打开失败,显示数据库返回的失败信息
QMessageBox::critical(0,QObject::tr("出错"),db.lastError().text());
}
QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
return app.exec();
}
运行结果如下图: