首页 > 代码库 > QT数据库使用案列【联系人】-- 使用sqlite和QStringListModel
QT数据库使用案列【联系人】-- 使用sqlite和QStringListModel
【简要功能介绍】
使用sqlite数据库和Qt搭建界面,实现联系人数据库记录。联系人有id编号,姓名,年龄.可对联系人
【表增加联系人】
【删除联系人】
【更新联系人信息】
【显示全部联系人信息】
【运行界面】
【源码下载】【http://pan.baidu.com/s/1o6OGley】
使用sqlitebrowser 查看
【初始化数据库】
QLibrary sqlib("./sqldrivers/qsqlited.dll"); sqlib.load (); qDebug()<<"my library loaded"<<sqlib.isLoaded(); db = QSqlDatabase::addDatabase("QSQLITE","SQLITE");#ifdef Q_OS_LINUX QString path(QDir::home().path()); path.append(QDir::separator()).append("my.db.sqlite"); path = QDir::toNativeSeparators(path); db.setDatabaseName(path);#else db.setDatabaseName("my.db.sqlite");#endif /* * create my.db.sqlite file if not exist */ db.open (); db.close ();
【创建表】
if(db.open ()){ sql_query = QSqlQuery (db); sql_query.prepare(create_sql); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"table created!"; } } updateDataBaseShow();
【插入记录】
if(db.open ()){ sql_query = QSqlQuery (db); int max_id = 0; sql_query.prepare(select_max_sql); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { while(sql_query.next()) { max_id = sql_query.value(0).toInt(); qDebug()<<QString("max id:%1").arg(max_id); } } sql_query.prepare(insert_sql); sql_query.addBindValue(max_id+1); sql_query.addBindValue(ui->lineEdit_name->text ()); sql_query.addBindValue(ui->lineEdit_age->text ().toInt ()); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"inserted!"; } updateDataBaseShow(); }
【显示全部数据(两列,id和name)】
if(db.open ()){ sql_query = QSqlQuery (db); if(!sql_query.exec(select_sql)) { qDebug()<<sql_query.lastError(); } else { while(sql_query.next()) { int id = sql_query.value("id").toInt(); QString name = sql_query.value("name").toString(); qDebug()<<QString("id:%1 name:%2").arg(id).arg(name); } } }
【显示全部数据】
if(db.open ()){ sql_query = QSqlQuery (db); sql_query.prepare(select_all_sql); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { ui->textEdit->clear (); while(sql_query.next()) { int id = sql_query.value(0).toInt(); QString name = sql_query.value(1).toString(); int age = sql_query.value(2).toInt(); ui->textEdit->append (QString("id:%1 name:%2 age:%3").arg(id).arg(name).arg(age)); qDebug()<<QString("id:%1 name:%2 age:%3").arg(id).arg(name).arg(age); } } }
【清除表】
if(db.open ()){ sql_query = QSqlQuery (db); sql_query.prepare(clear_sql); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"cleared"; } } updateDataBaseShow();
【删除一条记录】combobox选中的记录删除
if(db.open ()){ sql_query = QSqlQuery (db); sql_query.prepare(delete_sql); sql_query.addBindValue(ui->comboBox->currentText ().toInt ()); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"deleted!"; } } updateDataBaseShow();
【更新联系人信息】
if(db.open ()){ sql_query = QSqlQuery (db); sql_query.prepare("update student set name = :name ,age = :age where id = :id"); sql_query.bindValue(":name", ui->lineEdit_name->text ()); sql_query.bindValue(":age", ui->lineEdit_age->text ()); sql_query.bindValue(":id", ui->comboBox->currentText ().toInt ()); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"updated!"; } } updateDataBaseShow();
【删除数据库】
#ifdef Q_OS_LINUX QString path(QDir::home().path()); path.append(QDir::separator()).append("my.db.sqlite"); path = QDir::toNativeSeparators(path); QFile::remove(path); #else QFile::remove("my.db.sqlite"); #endif ui->comboBox->clear (); ui->textEdit->clear ();
QT数据库使用案列【联系人】-- 使用sqlite和QStringListModel
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。