qq_35850738 2016-08-31 10:57 采纳率: 0%
浏览 1298

如何将不同的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的函数,请问有没有什么好的解决方法?

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding