#include "Dialog.h"
#include "ui_Dialog.h"
#include <QMessageBox>
#include <QDebug>
#include <QFileDialog>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
bool Dialog::setAccessFile(const QString& filePath)
{
if(!connectionAccess(filePath))
{
QMessageBox::warning(this,QStringLiteral("警告"),QStringLiteral("数据库文件“%1”打开错误,请检查数据库文件正确性").arg(filePath));
return false;
}
QStringList tables = m_db.tables();
QStandardItemModel* tableModel = getTableListModel();
if(!tableModel)
{
tableModel = new QStandardItemModel(ui->listView);
ui->listView->setModel(tableModel);
}
tableModel->clear();
foreach (const QString& l, tables) {
qDebug()<<l;
qDebug()<<l.toLocal8Bit().toHex();
qDebug()<<l.toLatin1().toHex();
qDebug()<<l.toUtf8().toHex();
qDebug()<<"---------";
tableModel->appendRow(new QStandardItem(l));
}
return true;
}
bool Dialog::connectionAccess(const QString& filePath)
{
QString connID = "puremilk.access.connection-" + filePath;
m_db = QSqlDatabase::database(connID, false);
if (m_db.isValid())
{
if (m_db.isOpen())
return true;
}
else
m_db = QSqlDatabase::addDatabase("QODBC", connID);
if(m_db.isOpen())
{
m_db.close();
}
QString dsn = QStringLiteral(
"DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1").arg(filePath);
m_db.setDatabaseName(dsn);
return m_db.open();
}
QStandardItemModel* Dialog::getTableListModel()
{
return qobject_cast<QStandardItemModel*>(ui->listView->model());
}
void Dialog::on_pushButton_clicked()
{
QString file = QFileDialog::getOpenFileName(this);
ui->lineEdit->setText(file);
setAccessFile(file);
}
Qt5读取access数据库中文乱码
3星 · 超过75%的资源 需积分: 50 34 浏览量
2015-03-04
12:25:49
上传
评论 1
收藏 14KB 7Z 举报
尘中远
- 粉丝: 1737
- 资源: 15
最新资源
- C语言基础-C语言编程基础之Leetcode编程题解之第39题组合总和.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第38题外观数列.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第37题解数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第36题有效的数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第35题搜索插入位置.zip
- index.wxml
- C语言基础-C语言编程基础之Leetcode编程题解之第33题搜索旋转排序数组.zip
- 基于Python实现的手写数字识别系统源码.zip
- 从网页提取禁止转载的文字
- C语言基础-C语言编程基础之Leetcode编程题解之第32题最长有效括号.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈