qt SQL和tableView操作命令

   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();
最后在任何的表格操作都要提交一下











  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值