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 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab