从插入SQLLite3中获取操作错误

时间:2019-03-22 00:07:28

标签: python

def insert(BookID,Author,BookFormatID,Title,BookStatus,Category,RedemptionCode,StudentAssignedId):
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    db_path = os.path.join(BASE_DIR, "AVDatabase.db")
    conn=sqlite3.connect(db_path)
    cur=conn.cursor()
    cur.execute("INSERT INTO Books(BookID,Author,BookFormatID,Title.BookStatus,Category,RedemptionCode,StudentAssignedId) VALUES(?,?,?,?,?,?,?,?)", (BookID,Author,BookFormatID,Title,BookStatus,Category,RedemptionCode,StudentAssignedId))
    conn.commit()
    conn.close()
    view()

此事件在按钮上调用:

def add_command():
    back.insert(BookId_text.get(),Author_text.get(),Book_Format_Id_text.get(),Book_Title_text.get(),Book_Status_text.get(),Category_text.get(),Redemption_Code_text.get(),Student_Assigned_Id_text.get())
    list1.delete(0,END)
    list1.insert(END,(BookId_text.get(),Author_text.get(),Book_Format_Id_text.get(),Book_Title_text.get(),Book_Status_text.get(),Category_text.get(),Redemption_Code_text.get(),Student_Assigned_Id_text.get()))

所以基本的入门小部件和即时消息即将拉开我的头发。

1 个答案:

答案 0 :(得分:1)

insert函数中,Title.BookStatus应该为Title, BookStatus


如果您使用多行字符串,则可能会更好地避免此类错误 长时间的SQL:

cur.execute("""INSERT INTO Books(BookID
                                 , Author
                                 , BookFormatID
                                 , Title
                                 , BookStatus
                                 , Category
                                 , RedemptionCode
                                 , StudentAssignedId) VALUES (?,?,?,?,?,?,?,?)""",
    (BookID, Author, BookFormatID, Title,
     BookStatus, Category, RedemptionCode, StudentAssignedId))