Qt5读写Access 数据库

来源:互联网 发布:h5与后端数据库 编辑:程序博客网 时间:2024/06/03 22:56

首先设定Access数据库的地址:
sDbNm=”D:/Qt/QtServer/QtServer/database/Database.mdb”;
然后
bool MainWindow::ConnectDataBase()
{
db=QSqlDatabase::database(sDbNm);
if(db.isValid())
{
if(db.isOpen())
return true;
}
else db = QSqlDatabase::addDatabase(“QODBC”);//设置数据库驱动
if(db.isOpen())
{
db.close();
}
QString dsn = QString(“DRIVER={Microsoft Access Driver (*.mdb)}; FIL={MS Access};DBQ=%1;”).arg(sDbNm);
db.setDatabaseName(dsn);
// db.setDatabaseName(“DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=”+QString(%1).arg(sDbNm));
db.setUserName(“”);
db.setPassword(“”);
db.setHostName(“”);// DB_HOST is not relevant to DSNs
return db.open();
}
再然后 在所调用处使用
while(!connectOk)connectOk=ConnectDataBase();保证数据库连接成功。

写数据库中表:
query=QSqlQuery(db);
query.prepare(“insert into getData(ID,Tem,wet,ox,sun)”
“VALUES(?,?,?,?,?)”);
query.addBindValue(CurrentRow);
query.addBindValue(QString(“%1”).arg(Tdata[0]));
query.addBindValue(QString(“%2”).arg(Tdata[1]));
query.addBindValue(QString(“%3”).arg(Tdata[2]));
query.addBindValue(QString(“%4”).arg(Tdata[3]));
query.exec();
query.clear();
CurrentRow++;
query.prepare(“UPDATE close_Row SET row=? where ID=?”);//修改数据
query.bindValue(0,CurrentRow);//替换第一个问号内容
query.bindValue(1,1);//替换第二个问号内容
query.exec();
query.clear();
读数据库中表:
QString String=”select * from getData where ID=”;
String +=QString(“%1”).arg(CurrentRow-1);
query=QSqlQuery(db);
query.exec(String);
while(query.next())//遍历查询数据
{
ui->TemlineEdit->setText(query.value(1).toString());
ui->wetlineEdit->setText(query.value(2).toString());
ui->oxlineEdit->setText(query.value(3).toString());
ui->sunlineEdit->setText(query.value(4).toString());
}

0 0