qtjson怎么连接?qt链接数据库实例讲解

阳光 2021-09-28 22:01:08 java常见问答 7781

JSON格式一种轻量级的数据交换格式,跨平台,兼容性高,具有良好的可读性和快速编写的特性。那在实际开发的过程中,我们要如何才能实现qtjson的链接呢?下面来我们就来给大家讲解一下。

如果连接以有的数据库,比如要调用其他包里的数据库,例如这个数据库的路径为C:/user/db,名字叫做datebase1.db,数据库用户名为shw,密码为123456,那么就在main函数里添加如下代码

db.setDatabaseName("C:/user/db/datebase1.db");
db.setUserName("shw"); //设置数据库用户名
db.setPassword("123456");
db.open();

这样的话,就可以在登录界面的cpp文件里和注册界面的cpp文件里调用这个数据库了,你也可以下载一个sqlite数据库,连接数据库看一下数据库中的内容。

登陆界面的话,我是写了一个判断行数的代码

//判断行数
int queryRowCount(QSqlQuery query)
{
    int initialPos = query.at();
    // Very strange but for no records .at() returns -2
    int pos = 0;
    if (query.last())
    {
        pos = query.at() + 1;
    }
    else
    {
        pos = 0;
    }
    // Important to restore initial pos
    query.seek(initialPos);
    return pos;
}

然后再给命令(提前说明:这里的表的名字是users,表中有两列,一列是用户名user,一列是密码pwd,这都是数据库中以有的是其他包中的,这个函数只是调用):

void MainWindow::on_login_clicked()
{
    QString username = ui - > userEidt - > text();
    QString password = ui - > passwordsEidt - > text();
    if (username == "")
        QMessageBox::warning(this, "", "用户名不能为空!");
    else if (password == "")
        QMessageBox::warning(this, "", "密码不能为空!");
    else
    {
        //sql语句在数据库中进行查询验证
        QString S = QString("select * from users where user ='%1'and pwd = '%2' ")
            .arg(username)
            .arg(password);
        QSqlQuery query;
        query.exec(S);
        int row = queryRowCount(query);
        if (row == 1)
        {
            MyTcpClient * mytcpclient = new MyTcpClient;
            mytcpclient - > username = username;
            mytcpclient - > show();
            this - > close();
        }
        else
            QMessageBox::warning(NULL, "Error", "用户名或密码错误!!!");
    }
}

注册界面的话也很好实现,把查找的命令改为插入即可

void Form::on_pushButton_clicked()
{
    QString namestr = ui - > username - > text();
    QString num = ui - > pwdname - > text();
    if (namestr == "" || num == "")
    {
        QMessageBox::warning(NULL, "no", "用户名和密码不能为空");
    }
    else
    {
        QString str = QString("insert into users values('%1', '%2')")
            .arg(namestr)
            .arg(num);
        QSqlQuery query;
        query.exec(str);
        QMessageBox::warning(NULL, "good", "注册成功");
        MainWindow * win = new MainWindow;
        win - > show();
        this - > close();
    }
}

qtjson怎么连接?qt链接数据库实例讲解.jpg

打开sqlite数据库之后,就可以看这个数据库中的数据了,这样就说明数据库链接成功了。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

JSON的key为什么要用引号?JSON的key能是数字吗?

java泛型类如何取得泛型?java泛型怎么使用?

qtjson插入null值如何操作?JS如何判断json是否为空?