一个简单的QSqlite QSqlDatabase的封装和配套界面小程序

本文介绍了一个使用QT5的QSQLite模块进行数据库操作的封装实例,涵盖了增删查改功能,并提供了支持图片和中文的编辑或添加界面。配合详细代码示例,实现双击编辑功能。
摘要由CSDN通过智能技术生成

包括增加,删除,刷新,以及双击编辑,支持基本的图片和中文

部分代码如下

bool SqliteWrap::insert(const QString &table, const QStringList &names, const QVariantList &values, unsigned& id)
{
	if (query == nullptr || table.isEmpty() || names.isEmpty() || values.isEmpty() || values.size() % names.size() != 0)
		return false;

	static const QString qstr("INSERT INTO %1 (");
	QString& sql = qstr.arg(table);

	for (int i = 0; i < names.size() - 1; ++i)
	{
		sql += names.at(i) % QString(",");
	}
	sql += names.value(names.size() - 1) % QString(") VALUES (");

	for (int i = 0; i < names.size() - 1; ++i)
	{
		sql += QString("?,");
	}
	sql += QString("?)");

	query->prepare(sql);

	for (int i = 0; i < names.size(); ++i)
	{
		for (int k = i; k < values.size(); k += names.size())
		{
			QVaria
好的,以下是根据账号密码在qsqlite中的Qt登录程序的示例代码: 首先,在Qt中使用SQLite需要安装Qt的SQL模块和SQLite数据库引擎插件。在.pro文件中添加以下代码: ``` QT += sql QT += sql-sqlite ``` 然后,创建一个SQLite数据库并在其中创建一个名为users的表,用于存储用户账号和密码。表结构如下: ``` CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL, password TEXT NOT NULL ); ``` 接下来,创建一个登录窗口类,并在其中添加账号和密码输入框、登录按钮等控件。在登录按钮的clicked()信号槽中,连接到一个槽函数,用于验证用户输入的账号和密码是否正确。代码如下: ``` #include <QtSql> #include <QMessageBox> // 登录窗口类 class LoginWindow : public QWidget { Q_OBJECT public: LoginWindow(QWidget *parent = nullptr) : QWidget(parent) { // 创建账号和密码输入框 usernameEdit = new QLineEdit(this); passwordEdit = new QLineEdit(this); passwordEdit->setEchoMode(QLineEdit::Password); // 设置密码输入框为密码模式 // 创建登录按钮 loginButton = new QPushButton("登录", this); // 布局控件 QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(new QLabel("账号:", this)); layout->addWidget(usernameEdit); layout->addWidget(new QLabel("密码:", this)); layout->addWidget(passwordEdit); layout->addWidget(loginButton); setLayout(layout); // 连接登录按钮的clicked()信号槽 connect(loginButton, &QPushButton::clicked, this, &LoginWindow::login); } private slots: // 登录槽函数 void login() { // 获取输入的账号和密码 QString username = usernameEdit->text(); QString password = passwordEdit->text(); // 连接数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("mydatabase.db"); if (!db.open()) { QMessageBox::critical(this, "错误", "无法打开数据库!"); return; } // 验证账号和密码是否正确 QSqlQuery query; query.prepare("SELECT COUNT(*) FROM users WHERE username = ? AND password = ?"); query.addBindValue(username); query.addBindValue(password); if (!query.exec()) { QMessageBox::critical(this, "错误", "查询数据库失败!"); return; } query.next(); int count = query.value(0).toInt(); if (count == 1) { QMessageBox::information(this, "成功", "登录成功!"); } else { QMessageBox::warning(this, "错误", "账号或密码错误!"); } } private: QLineEdit *usernameEdit; // 账号输入框 QLineEdit *passwordEdit; // 密码输入框 QPushButton *loginButton; // 登录按钮 }; ``` 在槽函数login()中,首先连接到SQLite数据库。然后,使用参数化查询语句验证用户输入的账号和密码是否正确。如果账号和密码正确,则弹出一个信息框显示登录成功;否则,弹出一个警告框提示账号或密码错误。 最后,在main()函数中创建一个LoginWindow对象,并显示窗口: ``` #include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); LoginWindow loginWindow; loginWindow.show(); return app.exec(); } ``` 以上就是根据账号密码在qsqlite中的Qt登录程序的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值