本人刚刚接触qt,在使用qt sdk连接sqlite3数据库时出现问题。下面是对问题的描述:
使用的qt版本为windows下的qt sdk,sqlite3数据库是在其官网下载的,sqlite3的安装目录为D:\special_ruanjian\sqlite3,这其中包含
sqlite3.def,sqlite3.dll,sqlite3.exe,sqlite3_analyzer.exe四个文件,我在机器上添加的sqlite3的环境变量也是D:\special_ruanjian\sqlite3,我的qt工程放在了H:\biancheng\Qt_lab\lizi\3下,我利用sqlite3.exe建立了一个数据库,名字为dianming.db,开始建在了D:\special_ruanjian\sqlite3,而后我又复制了一份放在了H:\biancheng\Qt_lab\lizi\3下,3是我的工程文件夹。现在的问题是按照网上说的qt连接sqlite3的代码进行尝试,可是怎么也不能将数据库中的数据读出来,结果中间的tableView中什么都没有,希望各位大侠给予帮助。
代码如下:
1、连接数据库函数,我建立的sqlite数据库名称dianming.db. QSqlTableModel *userModel;
void sqldb::connectDB()
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("dianming.db"); //指定数据库名为dianming.db
if (!db.open())
{
QMessageBox::critical(NULL, "sqlDB","connect error"); return;
}
}
2、这是主窗体,想从dianming.db文件中将login表的数据取出来。其中QSqlTableModel *userModel; sqldb *db;sqldb是我建的一个类,包含连接函数。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
db = new sqldb(this); //建立
db->connectDB(); //连接
userModel=new QSqlTableModel(this);
this->userModel->clear(); //初始化用户模式
this->userModel = new QSqlTableModel; //建立用户模式空间
userModel->setTable("login"); //设置用户模式
userModel->setHeaderData(0, Qt::Horizontal, "QQ");
userModel->setHeaderData(1, Qt::Horizontal, "昵称");
userModel->select();
ui->tableView->setModel(userModel);