尝试将数据插入sqlite3时出错 - 错误绑定参数0 - 可能不受支持的类型

问题描述 投票:0回答:1

我试图将数据从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)

#THROWS ERROR ----> sqlite3.InterfaceError:绑定参数0时出错 - 可能是不支持的类型。

数据库文件Emp.db包含以下表和结构:EmpInfo和EmpImage

  1. EmpInfo CREATE TABLE EmpInfo(EmpID整数PRIMARY KEY,EmpName文本NOT NULL)
  2. EmpImage CREATE TABLE EmpImage(EmpID整数PRIMARY KEY,EmpPhoto BLOB NOT 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
python sqlite kivy
1个回答
1
投票

您正在尝试插入TextInput对象。您想要插入TextInput的文本值。

这也必须转换为integer

更改:

no = self.empid_text_input

至:

no = int(self.empid_text_input.text)

© www.soinside.com 2019 - 2024. All rights reserved.