我正在使用eric4(qtdesigner,pyqt,python等)與sqlite和我不斷收到「錯誤綁定參數0 - 可能不受支持的類型」當我運行我編寫的程序。不斷得到「錯誤綁定參數0 - 可能不受支持的類型」
我已經使用eric4 + qtdesigner製作了一些GUI並生成了對話框代碼。當我在qtdesigner中創建的窗口中的一個按鈕被按下時,它應該訪問數據庫,然後提交併保存數據庫中的信息。我已經創建了一個單獨的py文件來訪問和保存數據庫。
這裏是我的代碼的一部分,這些代碼很可能是我不斷收到的錯誤的來源。
在所產生的UI的對話框(我導入的單獨的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)
而這在數據庫訪問和寫入,其是在一個單獨的py文件:
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?)有關的地方,但我真的不知道如何檢查... 我還添加了一些打印以查看它們是否顯示我輸入的正確數據他們是正確的。所以我爲什麼仍然得到這個錯誤是非常令人難以置信的。
任何幫助深表感謝鞠躬深深
謝謝!我只是做了這樣的實例「Nik = unicode(self.LineEdit_Nickname.text())」,錯誤消失了:'D – hyoumoku 2011-02-28 14:50:12