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

时间:2018-09-01 15:00:09

标签: python sqlite kivy

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

  1. EmpInfo 创建表EmpInfo(EmpID整数PRIMARY KEY,EmpName文本不为NULL)

  2. 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

1 个答案:

答案 0 :(得分:1)

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

这也必须转换为integer

更改:

no = self.empid_text_input

收件人:

no = int(self.empid_text_input.text)