• 6681阅读
  • 0回复

用QSqlTableModel和QTableView来插入数据库的数据问题 [复制链接]

上一主题 下一主题
离线qinyi
 
只看楼主 正序阅读 楼主  发表于: 2008-03-24
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
    QSqlRecord record;
    int id = generateCallBoardId();
    QString insertTitle = Title->text();
    QString insertHeft = Heft->currentText();
    QString insertArrive = Arrive->currentText();
    QDateTime insertOverdueDateTime = OverdueDateTime->dateTime();
    QDateTime *dateTime;
    QDateTime currentTime = dateTime->currentDateTime();
    QString insertMainText = MainText->toPlainText();
   
    if(insertTitle.isEmpty()||insertMainText.isEmpty())
    {
        QString message(tr("标题和正文不能为空!"));
        QMessageBox::information(this, tr("提示"), message);
    }else{

       QSqlField f1("ID", QVariant::Int);
       QSqlField f2("Heft", QVariant::String);
       QSqlField f3("Owner", QVariant::String);
       QSqlField f4("Title", QVariant::String);
       QSqlField f5("Text", QVariant::String);
       QSqlField f6("Date", QVariant::DateTime);
       QSqlField f7("Overdue", QVariant::DateTime);
       QSqlField f8("Arrive", QVariant::String);
      
       f1.setValue(QVariant(id));
       f2.setValue(QVariant(insertHeft));
       f3.setValue(QVariant(insertArrive));
       f4.setValue(QVariant(insertTitle));
       f5.setValue(QVariant(insertMainText));
       f6.setValue(QVariant(currentTime));
       f7.setValue(QVariant(insertOverdueDateTime));
       f8.setValue(QVariant(insertArrive));
      
       record.append(f1);
       record.append(f2);
       record.append(f3);
       record.append(f4);
       record.append(f5);
       record.append(f6);
       record.append(f7);
       record.append(f8);

       InModel->insertRecord(-1, record);
我无法把数据写进数据库中,请指点一下
C++  QT
嵌入式BBS论坛
http://bbs.2embed.com
快速回复
限100 字节
 
上一个 下一个