QT5 Access数据库连接方法

申明:作者本人也是QT新手,大一学生学软件一年,如有错误望包涵

1.首先需要在.pro中加入 QT += sql
2. .cpp中(最好都添加)
#include <QSqlDatabase>
#include <QSqlQueryModel>
#include <QSqlQuery>
3.数据库连接代码(在头文件中申明connectDB())
void Widget::connectDB()
{
QString sDbNm = "C:/Users/jos/Desktop/MdsDB.accdb";//数据库文件
/************* 此处数据库路径得修改成自己的! *********/

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");//设置数据库驱动
QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm);//连接字符串
db.setDatabaseName(dsn);//设置连接字符串
db.setUserName("");//设置登陆数据库的用户名
db.setPassword("");//设置密码
bool ok = db.open();
if (!ok) {
QMessageBox messageBox;
messageBox.setText("Database error");
messageBox.exec();
db.close();
}
}
4. 可能遇见无法找到sql***一类的报错,我的解决办法就是新建一个工程,重新添加所有文件,然后复制以前的代码粘贴进新的工程。如果是dialog,就新建一个设计师界面,它会自动添加头文件,source文件和ui界面,只需复制原来的.ui文件覆盖到新工程目录下。
5. 连接数据库(就是调用connectDB()函数)
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
connectDB();
}
*注意*connectDB()已经将数据库打开而且没有关闭数据库,所以在其他函数里不要再使用connectDB();正常情况下直接操作数据库就行了。
6. 操作数据库,使用sql语句,提供几种操作方法:
(一)QSqlQuery query;
          query.prepare("SELECT * FROM table");
          query.exec();
(二) QSqlQuery query;
       query.exec("SELECT * FROM table");

(三)注意这种方法可以灵活改变sql语句
QString psd=xxxxx;
QString name=xxxxx;
QSqlQuery query;
query.prepare("UPDATE userinf SET userpsd=? where username=?");//修改数据
query.bindValue(0,psd);//替换第一个问号内容
query.bindValue(1,name);//替换第二个问号内容
query.exec();
(四)相似的方法
QString time=xxxxx;
QString path=xxxxx;
QSqlQuery query;
query.prepare("INSERT INTO table(uploadtime, picture) "
"VALUES (?, ?)");//插入语句
query.addBindValue(time);
query.addBindValue(path);
query.exec();
query.clear();//这个是清除执行得到的内容,如果数据不使用了可以清除掉

 
7. 使用数据(提供一种使用texe edit的)
QSqlQuery query;
query.prepare("select * from talentteammain");
query.exec();
while (query.next())/遍历查询的数据
            {
ui->textEdit_id->setText(query.value(0).toString());
ui->textEdit_open->setText(query.value(1).toString());
             }
query.clear();//Text Edit控件中显示你得到的数据

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值