如何将不同的QString对象组合起来 成为sql语句 传入tr()

 #ifndef EXE_H
#define EXE_H
#include "mainwindow.h"
#include <QApplication>
#include <QtSql>
#include <QSqlError>
#include <QtSql/QSqlDatabase>
#include <QStringList>
#include <QString>
#include <QDebug>

void exe(const QString& s2)

{
    QString &s1="insert into Student(name)values('";
        QString &s3="');";
        const QString s=s1+s2+s3;
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")
                      .arg("183.172.112.221")
                      .arg(1433)
                      .arg("School1")
                      .arg("sa")
                      .arg("123");
        db.setDatabaseName(dsn);

        bool r = db.open();
        if (r)
        {
            qDebug() << "SQL Server 2012 Connect OK!";



            QSqlQuery query2 = QSqlQuery(db);
            QString sq1 = QObject::tr(s);   //问题出在这

                        bool b = query2.exec(sq1);
            if(b)
            {
                qDebug() << "insert data success!";
            }

        }
        else
        {
            qDebug() <<"error_SqlServer:\n" << db.lastError().text();
        }

        db.close();
}



#endif // EXE_H

当我把s当做参数传入时,qtcreator报错“no matching function for call ”什么的,应该是参数不匹配;当我把s换做是加上双引号的sql语句时,就不会报错。我想把exe.h当做一个处理s2的函数,请问有没有什么好的解决方法?

https://www.baidu.com/link?url=bQLDt5r-VYz3-_s57DWkzanJ3tm8AirVRiP3W8GMDNvAymY8Rjh8nPWpbSjgZuZP-k4OEi7gTaMwF4tn1uub7_&wd=&eqid=86e487be000870a700000005589b80c1