qq_34787995 2016-04-25 10:33 采纳率: 0%
浏览 2911

PyQt:获取lineEdit值插入到mysql失败

我想把lineEdit的输入值一边显示到tablewidegt,一边插入到mysql。由于显示程序是提取mysql的数据再显示,所以显示界面是空白,并且mysql的数据也没有改变.


    from PyQt4 import QtCore, QtGui,QtSql
    import sys
    from test2 import Ui_MainWindow
    #test2是我用QT desigenr写的UI程序
    import chardet

    class StartQt4(QtGui.QMainWindow,Ui_MainWindow):
     def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.db = QtSql.QSqlDatabase.addDatabase("QMYSQL") 
        self.db.setHostName("localhost")
        self.db.setDatabaseName("test")   #set address
        self.db.setUserName("root")
        self.db.setPassword("")
        if (self.db.open()):
            self.showdata()
        else:
            print "failed"
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.add)

     def add(self):
        name0 = str(self.lineEdit.text())    
        name1 = str(self.lineEdit_2.text())
        name2 = str(self.lineEdit_3.text())
        print type(name0)
        self.q=QtSql.QSqlQuery(self.db)
        self.q.exec_("insert into qiu (name0,nam1,name2) value ('%s','%s','%s')" %(''.join(name0),''.join(name1),''.join(name2)))
        self.q.exec_("commit")
        lastrow=self.tableWidget.rowCount()
        self.tableWidget.insertRow(lastrow)
        self.showdata()    

     def  showdata(self):
        q=QtSql.QSqlQuery(self.db)
        q.exec_("select * from qiu")
        for i in range(0,self.tableWidget.rowCount()):
            q.next()
            name0 = q.value(0).toString()
            name1 = q.value(1).toString()
            name2 = q.value(2).toString()
            self.tableWidget.setItem(i, 0, QtGui.QTableWidgetItem(name0))
            self.tableWidget.setItem(i, 1, QtGui.QTableWidgetItem(name1))
            self.tableWidget.setItem(i, 2, QtGui.QTableWidgetItem(name2))

    if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StartQt4()
    myapp.show()
    sys.exit(app.exec_())

执行结果
图片说明

  • 写回答

2条回答 默认 最新

  • oyljerry 2016-04-25 14:42
    关注

    先打印sql语句 看是否语法正确

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘