本文目录
- 在QT下使用SQL的问题:QSqlRelationalTableModel类的setFilter查找,我希望他没有查找到的时候返回信息
- qt中的sql能读取对方的oarcle数据库信息吗
- qtsql获取某一行的数据
- qt sql模糊查询
- 如何在QTableView中显示SQL查询结果
- QT中 sql语句 where如何加int变量
- QT tablemodel 里,用来查询数据库中一个时间段的内容应该用怎么写啊model->setFilter()
- QT中使用sql语句查询时,表名通过一个参数来传递的话,这个sql语句怎么写
在QT下使用SQL的问题:QSqlRelationalTableModel类的setFilter查找,我希望他没有查找到的时候返回信息
两种方法1 model-》select();有结果 返回trueif (model-》select()){你的代码}2 int row = model-》rowCount(); // 获得行数 行数为0就是没有if (row》0){你的代码}
qt中的sql能读取对方的oarcle数据库信息吗
QT SQL 变量值 条件查询 插入数据 (本文只是总结网络上的教程) 在操作数据库时 SQL语句中难免会用到变量 比如 在条件值已知的情况下 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)SELECT * FROM Persons WHERE FirstName=’Bush’ 在条件值是变量的情况下 INSERT INTO table_name (列1, 列2,...) VALUES (变量1, 变量2,....)SELECT * FROM Persons WHERE FirstName=’变量’ 或者SELECT * FROM Persons WHERE 变量=’变量’ 方法据我所知有两种 1:用query的绑定特性来做***隐藏网址*** 第一步: 简单介绍下qstring常用操作 1-----------------组合1----- 把str添加到字符串中并且返回结果的引用。 string = "Test"; string.append( "ing" ); // string == "Testing"等于operator+=()。 2-------------------组合2------- QString firstName( "Joe" ); QString lastName( "Bloggs" ); QString fullName; fullName = QString( "First name is ’%1’, last name is ’%2’" ).arg( firstName ) .arg( lastName ); // fullName == First name is ’Joe’, last name is ’Bloggs’ QString str; str = QString( "Decimal 63 is %1 in hexadecimal" ).arg( 63, 0, 16 ); // str == "Decimal 63 is 3fin hexadecimal"3------------------组合3--------+,+= QString str = "1234"; cout 《《 &str 《《 endl; str += str; cout 《《 qPrintable(str) 《《endl; str = str + "5678"; cout 《《 qPrintable(str) 《《endl; 4----------------检测是否为空 QString a( "" ); a.isEmpty(); // 真 a.isNull(); // 假 QString b; b.isEmpty(); // 真 b.isNull(); // 真 如果它不是零字符串,返回真,否则返回假。 QString name =getName(); if ( !name ) name = "Rodney"; 5------------------转换 int 转 QString int a=10; QString b; b=QString::number(a) QString 转int QString a="120" int b; b=a.toInt() 第二步: 回顾一下QT下操作,显示数据库的方法 底层数据库:SQLITE,MYSQL,MSSQL,ACCESS,ORACLE……. 中间层处理:QUERY,QUERYMODEL,TABLEMODEL,RetinoalTABLEMODEL顶层显示:DEBUG(MSGBOX),TABLEVIEW,TREEVIEW,TABLEWIDGET,COMBOX第三步: 下面总结下在不同中间层的情况下,待变量SQL语句的执行方法这里只介绍查询和插入的方法,关於更新方法类似1----------------------使用query做中间层 SQL查询: SQL插入: 2----------------------使用querymodel做中间层查询: 插入: 3----------------------使用tablemodel做中间层查询: 插入: 4----------------------使用T-tablemodel做中间层查询: 插入: 1----------------------使用query做中间层(绑定或组合SQL字符串)SQL查询:(主要是用的绑定,其他捆绑方法可查询帮助文档,或者参考插入的sql语句格式)QSqlQuery query; query.prepare("select name from student where id = ?");int id = ui-》linetext-》value(); //从界面获取id的值query.addBindValue(id); //将id值进行绑定 query.exec(); SQL插入: (ODBC) QSqlQuery query; query.prepare("insert into student (id, name) values (:id, :name)");query.bindValue(0, 5); query.bindValue(1, "sixth"); query.exec(); 或者用名称进行索引 query.prepare("insert into student (id, name) values (:id, :name)");query.bindValue(":id", 5); query.bindValue(":name", "sixth"); query.exec(); (ORACLE) query.prepare("insert into student (id, name) values (?, ?)");query.bindValue(0, 5); query.bindValue(1, "sixth"); query.exec(); 或者省去索引 query.prepare("insert into student (id, name) values (?, ?)");query.addBindValue(5); query.addBindValue("sixth"); query.exec(); 批量插入: QSqlQuery q; q.prepare(“insert into student values (?, ?)”);QVariantList ints; ints 《《 10 《《 11 《《 12 《《 13;q.addBindValue(ints); QVariantList names; names 《《 “xiaoming” 《《 “xiaoliang” 《《 “xiaogang” 《《QVariant(QVariant::String); //最后一个是空字符串,应与前面的格式相同q.addBindValue(names); if (!q.execBatch()) //进行批处理,如果出错就输出错误qDebug() 《《 q.lastError(); 2----------------------使用querymodel做中间层(组合SQL字符串法可参考3)QString name = userNameLine-》text(); QString passwd = userPwdLine-》text(); QString sql = "select name, password from users where name = ’"+ name + "’and password =’" + passwd + "’";查询: QSqlQueryModel *model = new QSqlQueryModel;model-》setQuery(“select * from student”);插入: 3----------------------使用tablemodel做中间层(组合sql字符串法)QString name = userNameLine-》text(); QString passwd = userPwdLine-》text(); QString sql = "select name, password from users where name = ’"+ name + "’and password =’" + passwd + "’";查询 QSqlTableModel *model = new QSqlTableModel;model-》setTable("employee"); model-》setEditStrategy(QSqlTableModel::OnManualSubmit);model-》select(); model-》removeColumn(0); // don’t show the IDmodel-》setHeaderData(0, Qt::Horizontal, tr("Name"));model-》setHeaderData(1, Qt::Horizontal, tr("Salary"));QTableView *view = new QTableView; view-》setModel(model); view-》show(); 条件查询: QString name = ui-》lineEdit-》text(); model-》setFilter(QObject::tr(“name = ‘%1′”).arg(name)); //根据姓名进行筛选model-》select(); //显示结果 分类 model-》setSort(0,Qt::DescendingOrder); model-》select(); 插入: int rowNum = model-》rowCount(); //获得表的行数int id = 10; model-》insertRow(rowNum); //添加一行model-》setData(model-》index(rowNum,0),id);4----------------------使用Relationaltablemodel做中间层(组合SQL字符串法)查询: 插入:
qtsql获取某一行的数据
selectcolumnfromtable 这就是读取某一列的值了 另外,你也可以读多个列的值,用逗号隔开就好了。 还可以在后边加WHERE条件,读出符合条件的数据。
qt sql模糊查询
虽然对qt不了解但是看你的拼接语句中arg(QString("like %") + sel_ID + QString("%")))这段的like后貌似少了单引号?arg(QString("like ’%") + sel_ID + QString("%’")))你再试试?
如何在QTableView中显示SQL查询结果
QVariant headerData ( int section,Qt::Orientation orientation, int role = Qt::DisplayRole ) const 获取水平头或垂直头标题bool setHeaderData ( int section,Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole ) 设置水平头或垂直头标题int rowCount ( const QModelIndex & parent= QModelIndex() ) const // 返回行数int columnCount ( const QModelIndex &index = QModelIndex() ) const // 返回列数virtual bool removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) //model-》removeColumns (0)删除第一列bool QSqlTableModel::submitAll (),//提交所有被修改的数据,然后修改的数据被保存在数据库中void QSqlTableModel::revertAll () //撤销所有的修改,如果数据库已经被提交了修改,就不能通过撤销修改改回来了virtual void revertRow ( int row ) //恢复指定行的改变void QSqlTableModel::setFilter ( const QString & filter ) //筛选,按照字符串filter对数据库进行筛选,相当于SQL中的WHERE语句bool QSqlTableModel::select () //在筛选和排序的条件下,将数据库中符合要求的在mode表格中显示出来void QSqlTableModel::setSort ( int column, Qt::SortOrder order ) //排序操作。按照列和Qt::SortOrder排序。Qt::SortOrder有升序和降序bool insertRow ( int row, const QModelIndex & parent = QModelIndex() ) //插入行bool insertColumn ( int column, constQModelIndex & parent = QModelIndex() ) // 插入列model-》setEditStrategy(QSqlTableModel::OnManualSubmit); //设置保存策略为手动提交
QT中 sql语句 where如何加int变量
u如果是字符型,能代入么?
请参看QString的arg()函数。QString sql = QString("select * from user where id=%1 or id=%2").arg(10).arg(20);
QT tablemodel 里,用来查询数据库中一个时间段的内容应该用怎么写啊model->setFilter()
这个查询用的标准的sql语句即可"select * from MyTalbe where start_time 》= ’2018-12-12’ AND end_time 《= ’2019-12-12’"
QT中使用sql语句查询时,表名通过一个参数来传递的话,这个sql语句怎么写
select * from lineedit into varlineedit为表名,var为参数,