我试图将数据从Kivy的textinput字段插入sqlite3数据库,但出现以下问题。代码段
def save(self):
conn = Database.db_connect()
cursor = conn.cursor()
# kivy textinput widgets are assigned variable no, name
no = self.empid_text_input
name = self.empname_text_input.text
try:
save_index_sql="INSERT INTO EmpInfo (EmpID , EmpName) VALUES (?,?)"
conn.execute(save_index_sql, (no, name)) # Causes Error
conn.commit()
conn.close()
except sqlite3.IntegrityError as e:
print("Error: ",e)
#抛出错误----> sqlite3.InterfaceError:错误绑定参数0-可能是不受支持的类型。
数据库文件Emp.db包含以下表和结构:EmpInfo和EmpImage
EmpInfo 创建表EmpInfo(EmpID整数PRIMARY KEY,EmpName文本不为NULL)
EmpImage 创建表EmpImage(EmpID整数PRIMARY KEY,EmpPhoto BLOB不为NULL)
投射会产生以下结果:
# conn.execute(save_index_sql,(int(no), str(name))) # RETURNS----> TypeError: int() argument must be a string, a bytes-like object or a number, not 'TextInput'
# conn.execute(save_index_sql, (str(no), str(name))) # RETURNS----> Error: datatype mismatch
答案 0 :(得分:1)
您正在尝试插入TextInput
对象。
您要插入TextInput
的文本值。
这也必须转换为integer
更改:
no = self.empid_text_input
收件人:
no = int(self.empid_text_input.text)