query.next();//执行一次next,quer指向结果集的第一条记录
query.seek(2);//定位到编号为2的记录,即第三条记录
query.last();//定位到最后一条记录
int rowNum = query.at();//获取 rowNum 从0开始计数
int columnNum = query.record().count();//获取 column
int fieldNo = query.record().indexOf("agentiaName");//获取所在列的编号,从左向右,0
int getC_AName = query.value(0).toString();//获取值
全部清除
query.exec(
"DELETE
from
T_UserInfo");
清除部分
query.exec(
QString(
"delete
from
%1
where
rowid
=
%2").arg(name).arg(i)); // rowid 从1开始计数
全选
query.exec(QString("select * from name");
query.next();//或者query.seek(0); 都是自动检索到第一条信息
筛选数据
query.exec(
QString(
"select
*
from
%1
where
A
=%2");//A:输入你需要筛选的条件
更新数据
方法一:
query.prepare("update T_Task_PutIn set bottleCapacity = ?,dose = ?,drawerSize = ?,expireDate = ? where id = ?");
query.addBindValue(getC_bottleCapacity);
query.addBindValue(getC_dose);
query.addBindValue(getC_drawerSize );
query.addBindValue(getC_expireDate);
query.addBindValue(1);
query.exec();
方法二:
query.exec(
QString(
"update
SheetName
set
bottleCapacity='%1',dose='%2',\
drawerSize='%3',expireDate='%4' where rowid=%5")
.arg(getC_bottleCapacity).arg(getC_dose).arg(getC_drawerSize).arg(getC_expireDate).arg(i+
1));
//rowid
从1开始
插入一条新的信息
方法一:
query.prepare(
"insert
into
T_UserInfo
(userId,role)
values
(?,?)");
query.addBindValue(user->user_Id);
query.addBindValue(user->user_Role);
query.exec();
方法二
query.exec(
QString(
"insert
into
T_AgentiaTypeList
values
(%1,%2')").arg(value).arg(value));
创建一个数据表
query.exec(
QString(
"create
table
T_UserInfo
([aaaa]
int,[aaa]
int)"));
创建一个数据库
QSqlDatabase
db
=
QSqlDatabase::addDatabase(
"QSQLITE");
db.setDatabaseName("SmartCabinet.db");
if(!db.open())
return
false;
删除文件
QFile::remove(
"SmartCabinet.db");
//删除数据库文件
删除数据库
QSqlDatabase::removeDatabase("QSQLITE");//删除数据库
view 操作指令
QSqlTableModel *model;
T_model_Other_Execut->
setTable(“
name ”); //关联的数据库名字
T_model_Other_Execut->
select();//全选表格
T_model_Other_Execut->
setHeaderData(
0,
Qt::
Horizontal,
QObject::tr(
"删除"));//对0列的表头命名为“删除”
T_model_Other_Execut->
setHeaderData(
1,
Qt::
Horizontal,
QObject::tr(
"勾选"));//对1列的表头命名为“勾选”
T_model_Other_Execut->
setEditStrategy(
QSqlTableModel::
OnManualSubmit);
//信息提交方式
QSqlTableModel::OnFieldChange 0 All changes to the model will be applied immediately to the database. //任何修改不提交,需要手动提交 sumbitall() 或者 sumbit()
QSqlTableModel::OnRowChange 1 Changes to a row will be applied when the user selects a different row. //只有当你选中其他行时上一行修改才会自动提交
QSqlTableModel::OnManualSubmit 2 All changes will be cached in the model until either submitAll() or revertAll() is called. //任何修改自动提交
ui->
tableView_showExecuteInfo->
setModel(
T_model_Other_Execut);//关联tableview
ui->
tableView_showExecuteInfo->setItemDelegateForColumn(
0,
del_NewOperate);//可以设置单列委托
setItemDelegate();//全部
setItemDelegateForRow()//单行
建议表头的委托放在cpp
ui->setupUi(
this);
所在的地方
ui->tableView_showExecuteInfo->setHorizontalHeader(EHeader);//设置表头的委托
ui->tableView_showExecuteInfo->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);//设置表头的格式 :这是全部靠左 其他查数据手册
ui->
tableView_showExecuteInfo->setEditTriggers(
QAbstractItemView::
NoEditTriggers);
//窗口不可编辑
QAbstractItemView::NoEditTriggers 0 No editing possible.
QAbstractItemView::CurrentChanged 1 Editing start whenever current item changes.
QAbstractItemView::DoubleClicked 2 Editing starts when an item is double clicked.
QAbstractItemView::SelectedClicked 4 Editing starts when clicking on an already selected item.
QAbstractItemView::EditKeyPressed 8 Editing starts when the platform edit key has been pressed over an item.
QAbstractItemView::AnyKeyPressed 16 Editing starts when any key is pressed over an item.
QAbstractItemView::AllEditTriggers 31 Editing starts for all above actions.
T_model_Other_Execut->insertRow(rowNum);//添加
T_model_Other_Execut->
setData(
T_model_Other_Execut->
index(rowNum,
0),getC_No);//设置
int
getC_No
=
T_model_Other_Search->
data(
T_model_Other_Search->
index(i,
0)).toInt();//读取
QString
getC_AName
=
T_model_Other_Search->
data(
T_model_Other_Search->
index(i,
2)).toString();
T_model_Other_Search->removeRow(i);//移除
T_model_Other_Execut->submitAll();
T_model_Other_Search->submitAll();
最后在任何的表格操作都要提交一下