当前位置:首页 » 编程语言 » qtsql语句

qtsql语句

发布时间: 2022-09-12 03:53:31

‘壹’ QT中使用sql语句查询时,表名通过一个参数来传递的话,这个sql语句怎么写

select * from lineedit into var
lineedit为表名,var为参数,

‘贰’ QT的.pro文件里了怎么添加QT+=sql语句,在那个地方添加

另起一行,或者直接用core gui sql也行

‘叁’ QT中 sql语句 where如何加int变量

u如果是字符型,能代入么?

‘肆’ 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的绑定特性来做
2:利用字符串特性,来组合SQL字符串(+,&,arg())详情可参考qstring,string用法(提示:qstring在执行sql语句时相当有用,当深入研究之http://developer.qt.nokia.com/doc/qt-4.8/qstring.htmlhttp://www.kuqin.com/qtdocument/qstring.htmlhttp://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QString.htmlhttp://ibeyond.blog.51cto.com/1988404/373948网络文库也有个很好的官方ppt 讲的QT 数据类型 也可以参考之)
第一步:
简单介绍下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字符串法)查询:
插入:

‘伍’ 如何用for循环在qt中实现sql数据库的多行插入

debug时把sql语句复制出来,在数据库链接工具中(如plsql,navicat等)执行一次,可能是你的value中设置了非空字段,也有可能是你的数据库策略不允许插入空.

‘陆’ qt连接sql数据库的方法。

using
System;
using
System.Data.SqlClient;
namespace
_09_01
{
class
Class_09_01
{
public
static
void
Main(String[]
args)
{
//
连接字符串,读者可以根据自己情况设置不同的值
string
strConn
=
"Initial
Catalog=Northwind;Data
Source=(local);User
ID=sa;Password=sa";
//
SqlConnection
对象
SqlConnection
conn
=
new
SqlConnection();
conn.ConnectionString
=
strConn;
try
{
//
打开数据库连接
conn.Open();
Console.WriteLine("成功连接到数据库!");
Console.WriteLine("数据源:{0}",
conn.DataSource);
Console.WriteLine("数据库名:{0}",
conn.Database);
Console.WriteLine("客户端名:{0}",
conn.WorkstationId);
//
在用完了数据库连接之后记得关闭!
conn.Close();
}
catch
(Exception
e)
{
Console.WriteLine("无法连接到数据库!报告异常:");
Console.WriteLine(e.Message);
}
}
}
}

‘柒’ QT查询mysql数据库中表格是否存在怎么操作

1、sql语句判断数据库表是否存在:
sql:select * from user_all_tables where table_name='tableName'
如果结果为空则表示不存在,如何结果不为空则表示存在;

2、java如何判断数据库表是否存在
可以利用上面的sql,执行获取结果,相应的java代码如下:
String helperName= delegator.getGroupHelperName("com.asiainfo");
SQLProcessor sqlProcessor= new SQLProcessor(helperName);
String sql = "select * from user_all_tables where table_name='"+table+"'";
ResultSet rsTables =sqlProcessor.executeQuery(sql);
if(rsTables.next()){
Debug.logWarning("table:"+table+" exists", mole);
}else{
Debug.logWarning("table:"+table+" does not exist", mole);
}

‘捌’ QT的sql语句出了问题(sqlite数据库),求解答

你检查下sql语句中的双引号和单引号有没有错误

‘玖’ 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的绑定特性来做
2:利用字符串特性,来组合SQL字符串(+,&,arg())详情可参考qstring,string用法(提示:qstring在执行sql语句时相当有用,当深入研究之http://developer.qt.nokia.com/doc/qt-4.8/qstring.htmlhttp://www.kuqin.com/qtdocument/qstring.htmlhttp://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QString.htmlhttp://ibeyond.blog.51cto.com/1988404/373948网络文库也有个很好的官方ppt 讲的QT 数据类型 也可以参考之)

‘拾’ qt连接sql数据库的方法。

using System; using System.Data.SqlClient; namespace _09_01 { class Class_09_01 { public static void Main(String[] args) { // 连接字符串,读者可以根据自己情况设置不同的值 string strConn = "Initial Catalog=Northwind;Data Source=(local);User ID=sa;Password=sa"; // SqlConnection 对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = strConn; try { // 打开数据库连接 conn.Open(); Console.WriteLine("成功连接到数据库!"); Console.WriteLine("数据源:{0}", conn.DataSource); Console.WriteLine("数据库名:{0}", conn.Database); Console.WriteLine("客户端名:{0}", conn.WorkstationId); // 在用完了数据库连接之后记得关闭! conn.Close(); } catch (Exception e) { Console.WriteLine("无法连接到数据库!报告异常:"); Console.WriteLine(e.Message); } } } }

热点内容
网络登录服务器需要获取什么信息 发布:2025-01-12 12:17:32 浏览:890
mac终端打开文件夹 发布:2025-01-12 12:17:31 浏览:295
第一次安装如何设置mysql密码 发布:2025-01-12 12:09:02 浏览:280
如何删除微信服务器上收藏 发布:2025-01-12 12:08:20 浏览:102
吃鸡游戏安卓区转苹果区怎么转 发布:2025-01-12 11:34:00 浏览:880
网页版c语言 发布:2025-01-12 11:21:01 浏览:864
安卓怎么更改排位常用英雄 发布:2025-01-12 11:10:33 浏览:561
拆迁的100万如何配置 发布:2025-01-12 11:08:52 浏览:575
如何配置ph值为次氯酸钠的ph值 发布:2025-01-12 11:08:52 浏览:437
pythonarraynumpy 发布:2025-01-12 11:01:47 浏览:293