sqlite3.Ошибка программирования: Вы не указали значение для привязки 8

#sqlite #tkinter

Вопрос:

В настоящее время я пытаюсь ввести ряд параметров в базу данных, однако получаю вышеуказанную ошибку. Не уверен, в чем проблема с моим кодом. Я не уверен, почему нет значения, присвоенного lambda_l.get()

 def Submit():
    #Create or connect to Database
    conn=sqlite3.connect('Model_Database.db')

    #Create Cursor
    c= conn.cursor()

   #Insert into Table
    c.execute("INSERT INTO Solvent_Parameters VALUES (:Solvent_Name, :Heat_Cap, :Ant_A, 
    :Ant_B, :Ant_C, :Rho_L, :H_vap, :lambda_L)",
         {
             'Solvent_Name': Solvent_Name.get(),
             'Heat_Cap': Heat_Cap.get(),
             'Ant_A': Ant_A.get(),
             'Ant_B': Ant_B.get(),
             'Ant_C': Ant_C.get(),
             'Rho_L': Rho_L.get(),
             'H_vap' : H_vap.get(),
             'lambda_l': lambda_L.get()
        })



    #commit changes to database
    conn.commit()

    #close database connection
    conn.close() 



#create submit button
submit_btn= tkr.Button(window, text="Add Record to Database", command=Submit)
submit_btn.grid(row=8, column=0, columnspan=2, padx=15, pady=5, ipadx=100, sticky='EW')
 

Ответ №1:

Вам не нужны фигурные скобки, учет регистра играет подчиненную роль только в командах. (на самом деле это больше для удобства чтения). короче говоря: программа не знает, что делать.

 "INSERT INTO your_table "                                     
                             "(solved_1, solved_2, solved_3)"              
                             "VALUES (%s, %s, %s) ",                                
                             (                                                              
                                 your_entry1.get(),                     
                                 your_entry2.get(),                     
                                 your_entry3.get(),                     
                             )) 
 

Ответ №2:

Я считаю, что это проблема с учетом регистра.

Имя привязки «:lambda_L», но позже вы адресуете его как «lambda_l».

Заглавная буква L вызывает проблему