Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不断得到;绑定参数0时出错-可能不支持类型“0”;_Python_Sqlite_Pyqt - Fatal编程技术网

Python 不断得到;绑定参数0时出错-可能不支持类型“0”;

Python 不断得到;绑定参数0时出错-可能不支持类型“0”;,python,sqlite,pyqt,Python,Sqlite,Pyqt,我将eric4(qtdesigner、pyqt、python等)与sqlite一起使用,当我运行我编写的程序时,我不断得到“错误绑定参数0-可能是不支持的类型” 我使用eric4+qtdesigner制作了一些GUI,并生成了对话框代码。当按下我在qtdesigner中创建的窗口的一个按钮时,它应该访问数据库,然后提交并将信息保存在数据库中。我制作了一个单独的py文件,用于访问和保存数据库 下面是我的部分代码,它们很可能是我不断遇到的错误的来源 在ui的生成对话框中(我导入了单独的py文件):

我将eric4(qtdesigner、pyqt、python等)与sqlite一起使用,当我运行我编写的程序时,我不断得到“错误绑定参数0-可能是不支持的类型”

我使用eric4+qtdesigner制作了一些GUI,并生成了对话框代码。当按下我在qtdesigner中创建的窗口的一个按钮时,它应该访问数据库,然后提交并将信息保存在数据库中。我制作了一个单独的py文件,用于访问和保存数据库

下面是我的部分代码,它们很可能是我不断遇到的错误的来源

在ui的生成对话框中(我导入了单独的py文件):

在单独的py文件上的数据库访问和写入中:

    def on_button_Save_released(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet
        Nik = self.LineEdit_Nickname.text()
        NFirst = self.LineEdit_NameFirst.text()
        NMid = self.LineEdit_NameMiddle.text()
        NLast = self.LineEdit_NameLast.text()
        BMon = self.ComboBox_BirthMonth.currentText()
        BDay = self.ComboBox_BirthDay.currentText()
        BYear = self.ComboBox_BirthYear.currentText()
        CNum = self.LineEdit_ContactNum.text()
        EM = self.LineEdit_EMail.text()
        MAd = self.LineEdit_MailAdd.text()

        self.NMem = NewMem()
        self.NMem.input_data(Nik,  NFirst, NMid,  NLast,  BMon,  BDay,  BYear,  CNum,  EM,  MAd)
import sqlite3
import datetime, time

con = sqlite3.connect("Members.db") #access database
cur = con.cursor()  #cursor object for database


class NewMem:
    def input_data(self,  Nik,  NFirst, NMid,  NLast,  BMon,  BDay,  BYear,  CNum,  EM,  MAd):

        def adapt_datetime(ts):
            return time.mktime(ts.timetuple())

        #Get current time and date
        sqlite3.register_adapter(datetime.datetime, adapt_datetime) 
        now = datetime.datetime.now()  

        #created if first time to make a table
        try: 
            cur.execute('create table Members (ID integer primary key autoincrement not null, Nick string not null, NameFirst string, NameMiddle string, NameLast string, BirthMonth string, BirthDay string, BirthYear string, ContactNum string, EMail string, MailAdd string, MemberSince string)')
        except:
            pass

        cur.execute("insert into Members (Nick,NameFirst,NameMiddle,NameLast,BirthMonth,BirthDay,BirthYear,ContactNum,EMail,MailAdd,MemberSince) values (?,?,?,?,?,?,?,?,?,?,?)",(Nik,  NFirst, NMid,  NLast,  BMon,  BDay,  BYear,  CNum,  EM,  MAd, now))

        con.commit()
        cur.close()
        con.close()
我在谷歌上看过一些搜索,可能是引号和?参数,但我已经检查过了,它们似乎是正确的。也有人读到它与角色映射(UTF?)有关,但我真的不知道如何检查。。。 我还添加了一些打印,看看它们是否显示了我输入的正确数据,它们是否正确。因此,我仍然得到错误的原因是令人难以置信的


非常感谢您提供的任何帮助

QlineEdit.text()
返回一个
QString
。将其传递给unicode构造函数以获得可用的内容。

QlineEdit.text()
返回一个
QString
。将它传递给unicode构造函数,以获得可用的东西。

我可以复制它

如果您将字符串、数字甚至日期传递为
Nik
,则一切正常。您描述的错误只有在您传递了一些奇怪的信息,如
Nik
,例如类或函数时才会发生


检查
输入数据的调用是否通过了正确的
Nik
。很可能某个
()
被遗忘在某处,因此传递的是一个类或函数,而不是一个实例或函数的结果。

如果您将字符串、数字甚至日期传递为
Nik
,则一切正常。您描述的错误只有在您传递了一些奇怪的信息,如
Nik
,例如类或函数时才会发生


检查
输入数据的调用是否通过了正确的
Nik
。很可能某个
()
被遗忘在某个地方,因此传递的是类或函数,而不是实例或函数的结果。

谢谢!我刚刚创建了这样的实例“Nik=unicode(self.LineEdit_昵称.text()”,错误消失了:“谢谢!我刚刚创建了这样的实例“Nik=unicode(self.LineEdit_昵称.text()”,错误消失了:“谢谢!六羟甲基三聚氰胺六甲醚。。。尽管我相信是unicode构造函数丢失了,我还是会检查是否有()丢失的实例以防万一。谢谢:D公认的答案解释了这一切:QString不按字符串规则玩。谢谢!六羟甲基三聚氰胺六甲醚。。。尽管我相信是unicode构造函数丢失了,我还是会检查是否有()丢失的实例以防万一。谢谢:D公认的答案解释了这一切:QString不按字符串规则玩。