当前位置: 首页 > news >正文

做会议活动的网站柳州做网站有kv

做会议活动的网站,柳州做网站有kv,网页编辑栏无法写入,网络建设公司起名参考引用 SQLite 权威指南#xff08;第二版#xff09;SQLite3 入门 1. Qt 数据库密码加密 MD5 加密在线工具 1.1 加密流程 加密后的密码都是不可逆的 1.2 代码实现 loginsqlite.h #ifndef LOGINSQLITE_H #define LOGINSQLITE_H#include QWidget #include Q… 参考引用 SQLite 权威指南第二版SQLite3 入门 1. Qt 数据库密码加密 MD5 加密在线工具 1.1 加密流程 加密后的密码都是不可逆的 1.2 代码实现 loginsqlite.h #ifndef LOGINSQLITE_H #define LOGINSQLITE_H#include QWidget #include QSqlError #include QString #include QSqlQuery #include QDebug #include QMessageBox #include QSqlRecord #include QSettings #include QCryptographicHash // 对密码进行 md5 加密 #include QByteArrayQT_BEGIN_NAMESPACE namespace Ui { class loginSqlite; } QT_END_NAMESPACEclass loginSqlite : public QWidget {Q_OBJECTpublic:loginSqlite(QWidget *parent nullptr);~loginSqlite();private slots:void on_loginBt_clicked();void on_regBt_clicked();private:Ui::loginSqlite *ui;QString password_md5(QString input); }; #endif // LOGINSQLITE_Hloginsqlite.cpp #include loginsqlite.h #include ui_loginsqlite.hloginSqlite::loginSqlite(QWidget *parent) : QWidget(parent), ui(new Ui::loginSqlite) {ui-setupUi(this);// 从配置文件中提取用户名和密码QSettings setting(QSettings::IniFormat, QSettings::SystemScope, config);QString username setting.value(username).toString();QString password setting.value(password).toString();ui-userEdit-setText(username);ui-passEdit-setText(password); }loginSqlite::~loginSqlite() {delete ui; }// 对密码进行 md5 加密 QString loginSqlite::password_md5(QString input) {// 创建加密对象QCryptographicHash hash(QCryptographicHash::Md5);// 添加明文数据hash.addData(input.toUtf8());// 获取加密后的数据QByteArray pass hash.result(); // 16 字节数据md5 数据就是把这 16 个字节数据转十六进制// md5 数据就是把上面 pass 的这 16 个字节数据转十六进制return pass.toHex(); }// 登录查询数据库 void loginSqlite::on_loginBt_clicked() {QString username ui-userEdit-text();QString password ui-passEdit-text();// 对密码进行 md5 加密然后再返回给自己password password_md5(password);// 打包插入的 sql 语句QString sql QString(select * from user where username%1 and password%2).arg(username).arg(password);// 执行 sql 插入语句QSqlQuery query;if (!query.exec(sql)) {qDebug() query.lastError().text();return;}// 获取查询的数据if (query.next()) { // 指向第一个数据// 查到记录qDebug() find record;// QSettings 记录用户名密码if (ui-checkBox-isChecked()) {// 打开配置文件 (在 C:\ProgramData 目录下)QSettings setting(QSettings::IniFormat, QSettings::SystemScope, config.ini);// 把用户名和密码设置到配置文件中setting.setValue(username, username);setting.setValue(password, password);}} else {// 未查到记录qDebug() not find record;}QSqlRecord record query.record(); // 一行数据是一条记录qDebug() record.value(username).toString();qDebug() record.value(password).toString(); }// 注册插入数据 void loginSqlite::on_regBt_clicked() {QString username ui-userEdit-text();QString password ui-passEdit-text();// 对密码进行 md5 加密然后再返回给自己password password_md5(password);// 打包插入的 sql 语句QString sql QString(insert into user(username, password) values(%1, %2)).arg(username).arg(password);// 执行 sql 插入语句QSqlQuery query;if (!query.exec(sql)) {qDebug() query.lastError().text();QMessageBox::information(this, registe, registe failed);return;}QMessageBox::information(this, registe, registed); }2. QSqlTableModel 解析 数据库数据QSqlTableModel视图显示QTableView 2.1 QSqlTableModel 简介 main.cpp #include tablemodel.h#include QApplication #include QSqlDatabase #include QDebug #include QSqlError #include QString #include QSqlQueryint main(int argc, char *argv[]) {QApplication a(argc, argv);// 创建一个默认数据库连接在后期整个 Qt 应用中可使用通过 Qt 中的接口函数操作数据库// 创建数据库连接句柄QSqlDatabase db QSqlDatabase::addDatabase(QSQLITE);// 设置数据库名称用户名密码db.setDatabaseName(my.db);// 打开数据库if (!db.open()) {qDebug() db.lastError().text(); // 输出错误信息}// 创建表格QString sql create table if not exists user(id integer primary key autoincrement,username varchar(256) unique, password varchar(256));// 执行 sql 语句QSqlQuery query; // 自动关联到默认连接名的数据库if (query.exec(sql)) {qDebug() query.lastError().text();}TableModel w;w.show();return a.exec(); }tablemodel.h #ifndef TABLEMODEL_H #define TABLEMODEL_H#include QWidget #include QSqlTableModelQT_BEGIN_NAMESPACE namespace Ui { class TableModel; } QT_END_NAMESPACEclass TableModel : public QWidget {Q_OBJECTpublic:TableModel(QWidget *parent nullptr);~TableModel();private slots:void on_pushButton_clicked();private:Ui::TableModel *ui;QSqlTableModel *model; }; #endif // TABLEMODEL_Htablemodel.cpp #include tablemodel.h #include ui_tablemodel.hTableModel::TableModel(QWidget *parent) : QWidget(parent), ui(new Ui::TableModel) {ui-setupUi(this);model new QSqlTableModel; // 会自动绑定到默认连接的数据库// 设置数据表model-setTable(user);ui-tableView-setModel(model); }TableModel::~TableModel() {delete ui; }void TableModel::on_pushButton_clicked() {// 查询--获取数据库数据model-select(); }2.2 QSqlTableModel 增删改查 用 QSqlTableModel 实现数据的插入查询 更新 删除 事务默认自动提交作业提交情况表 main.cpp #include hwtablemodelapp.h#include QApplication #include QSqlDatabase #include QDebug #include QSqlError #include QString #include QSqlQueryint main(int argc, char *argv[]) {QApplication a(argc, argv);// 创建数据库连接句柄QSqlDatabase db QSqlDatabase::addDatabase(QSQLITE);// 设置数据库名称用户名密码db.setDatabaseName(my.db);// 打开数据库if (!db.open()) {qDebug() db.lastError().text(); // 输出错误信息}// 创建表格QString sql create table if not exists homework(id integer primary key autoincrement,class varchar(256) not null, name varchar(256) not null,time varchar(256) not null, hwname varchar(256));// 执行 sql 语句QSqlQuery query; // 自动关联到默认连接名的数据库if (query.exec(sql)) {qDebug() query.lastError().text();}HWTableModelApp w;w.show();return a.exec(); }hwtablemodelapp.h #ifndef HWTABLEMODELAPP_H #define HWTABLEMODELAPP_H#include QWidget #include QDebug #include QSqlError #include QString #include QSqlQuery #include QSqlTableModel #include QSqlRecord #include QDatetimeQT_BEGIN_NAMESPACE namespace Ui { class HWTableModelApp; } QT_END_NAMESPACEclass HWTableModelApp : public QWidget {Q_OBJECTpublic:HWTableModelApp(QWidget *parent nullptr);~HWTableModelApp();private slots:void on_insertBt_clicked();void on_selectBt_clicked();void on_tableView_clicked(const QModelIndex index);void on_updateBt_clicked();void on_submitBt_clicked();void on_deleteBt_clicked();private:Ui::HWTableModelApp *ui;QSqlTableModel *model; }; #endif // HWTABLEMODELAPP_Hhwtablemodelapp.cpp #include hwtablemodelapp.h #include ui_hwtablemodelapp.hHWTableModelApp::HWTableModelApp(QWidget *parent) : QWidget(parent), ui(new Ui::HWTableModelApp) {ui-setupUi(this);// 初始化数据表格模型model new QSqlTableModel;// 设置事务手动提交--默认是自动提交model-setEditStrategy(QSqlTableModel::OnManualSubmit);// 绑定表格model-setTable(homework);// 查询数据model-select(); // 就是把表格中的数据提取出来放在模型中// 模型与视图绑定ui-tableView-setModel(model); }HWTableModelApp::~HWTableModelApp(){delete ui;delete model; }// 插入数据 void HWTableModelApp::on_insertBt_clicked() {QString _class ui-classEdit-text();QString _name ui-nameEdit-text();QString _hwname ui-hwEdit-text();QString _time QDateTime::currentDateTime().toString();// 创建一条数据记录--根据当前表格创建才能知道有那些字段QSqlRecord record model-record();record.setValue(class, _class);record.setValue(name, _name);record.setValue(time, _time);record.setValue(hwname, _hwname);// 把记录添加到表格模型中model-insertRecord(0, record);// 提交事务model-submitAll();// 如果使用手动提交事务从数据库中重新拿到数据model-select(); }// 查询数据 void HWTableModelApp::on_selectBt_clicked() {QString _class ui-classEdit-text();QString _name ui-nameEdit-text();QString _hwname ui-hwEdit-text();QString filter;if (!_class.isEmpty()) {filter.append(QString(class %1).arg(_class));}if (!_name.isEmpty()) {if (!filter.isEmpty()) { // 设置双重条件查询更精确filter.append( and );}filter.append(QString(name %1).arg(_name));}if (!_hwname.isEmpty()) {if (!filter.isEmpty()) {filter.append( and );}filter.append(QString(hwname %1).arg(_hwname));}// 设置条件过滤 sql--where 的条件model-setFilter(filter);// 查询数据model-select(); }// 点击视图获取当前点击行的数据 void HWTableModelApp::on_tableView_clicked(const QModelIndex index) {// 获取当前被选中的行int row index.row();// 从模型中获取 row 行的数据QSqlRecord record model-record(row);// 获取记录中的数据ui-classEdit-setText(record.value(class).toString());ui-nameEdit-setText(record.value(name).toString());ui-hwEdit-setText(record.value(hwname).toString()); }// 更新数据 void HWTableModelApp::on_updateBt_clicked() {// 获取当前被选中的行int row ui-tableView-currentIndex().row();if (row 0) {return;}// 从模型中提取 row 行的数据QSqlRecord record model-record(row);// 更新记录中的数据record.setValue(class, ui-classEdit-text());record.setValue(name, ui-nameEdit-text());record.setValue(hwname, ui-hwEdit-text());// 把记录更新到模型中model-setRecord(row, record); }// 事务提交按下此按钮后更新的数据才会同步到数据库中因为前面设置了手动事务提交 void HWTableModelApp::on_submitBt_clicked() {model-submitAll(); }// 删除数据 void HWTableModelApp::on_deleteBt_clicked() {// 删除当前被选中的行int row ui-tableView-currentIndex().row();if (row 0) {return;}model-removeRow(row); // 删除完后要自己调用提交 }hwtablemodelapp.ui 3. QTableView 显示设置 3.1 main.cpp #include tableviewapp.h#include QApplication #include QSqlDatabase #include QDebug #include QSqlError #include QString #include QSqlQueryint main(int argc, char *argv[]) {QApplication a(argc, argv);// 创建数据库连接句柄QSqlDatabase db QSqlDatabase::addDatabase(QSQLITE);// 设置数据库名称用户名密码db.setDatabaseName(my.db);// 打开数据库if (!db.open()) {qDebug() db.lastError().text(); // 输出错误信息}// 创建表格QString sql create table if not exists homework(id integer primary key autoincrement,class varchar(256) not null, name varchar(256) not null,time varchar(256) not null, hwname varchar(256));// 执行 sql 语句QSqlQuery query; // 自动关联到默认连接名的数据库if (query.exec(sql)) {qDebug() query.lastError().text();}TableViewApp w;w.show();return a.exec(); }3.2 tableviewapp.h #ifndef TABLEVIEWAPP_H #define TABLEVIEWAPP_H#include QWidget #include QDebug #include QSqlError #include QString #include QSqlQuery #include QSqlTableModelQT_BEGIN_NAMESPACE namespace Ui { class TableViewApp; } QT_END_NAMESPACEclass TableViewApp : public QWidget {Q_OBJECTpublic:TableViewApp(QWidget *parent nullptr);~TableViewApp();private:Ui::TableViewApp *ui;QSqlTableModel *model; }; #endif // TABLEVIEWAPP_H3.3 tableviewapp.cpp #include tableviewapp.h #include ui_tableviewapp.hTableViewApp::TableViewApp(QWidget *parent) : QWidget(parent), ui(new Ui::TableViewApp) {ui-setupUi(this);model new QSqlTableModel;model-setTable(homework);model-select();ui-tableView-setModel(model);// 隐藏第 0 列数据ui-tableView-setColumnHidden(0,true);// 设置表水平头显示model-setHeaderData(1, Qt::Horizontal, u8班级);model-setHeaderData(2, Qt::Horizontal, u8姓名);model-setHeaderData(3, Qt::Horizontal, u8时间);model-setHeaderData(4, Qt::Horizontal, u8作业名称);// 设置表格线隐藏/显示ui-tableView-setShowGrid(true);// 设置表格线样式ui-tableView-setGridStyle(Qt::DashDotLine); }TableViewApp::~TableViewApp() {delete ui; }
http://www.pierceye.com/news/139337/

相关文章:

  • 手机网站根目录简述一个网站设计的主要步骤
  • 网站改版seo建议网页设计师的能力
  • 网站上线前应该备案吗温州网站建设风格
  • 网站建设书籍免费聊城市东昌府区建设路小学网站
  • 网站标题优化怎么做找人一起做素材网站
  • 如何创建个人网站模板用织梦做模板网站
  • 平台建站建设做网站一定要有营业执照吗
  • 如何把学校网站建设好天猫店铺购买
  • 网站的建设和推广企业网站建设的主要目的是
  • html5 公众号 网站开发工程公司名称
  • 公司做网站那家好网站二维码怎么制作
  • 鼓楼区建设房产和交通局网站网站全屏图片怎么做
  • 外贸订单流失严重番禺网站建设优化推广
  • 做网站送邮箱电商网站建设行情
  • f2c网站建设珠海手机网站建设费用
  • 网站建设的策划书wordpress相册代码
  • 直播网站创做上海网站制作公司哪
  • 如何承接网站建设外包昆明专业网站设计公司
  • 网站做关键词库的作用trellis wordpress
  • 建设一个网站需要哪些硬件设备关键词查询爱站网
  • 17网站一起做网店普宁个人网站备案名称填写的注意事项
  • 好的专业网站建设公司asp300源码
  • 问卷调查网站赚钱一流的盐城网站建设
  • 前端网站推荐常德农科院网站
  • 域名注册网站建设方案网站建设一般多少钱
  • 宁波网站推广找哪家重庆市建设工程信息网官网怎么查看
  • 大创意网站wordpress影视主题
  • 简约 网站模板电商网站推广方法
  • 做网站一月工资深圳建站推广公司
  • 免费建设商城网站网络商城应该如何推广