2016-04-07 23 views
0

Bu yüzden, daha önce giriş kutuları oluşturan ve oluşturulduklarında bunların içinde ne olduğunu düzenlemek için gerçekten kullanışlı bir kod parçası buldum. Yüklenen veriler bir SQL tablosundan alındı. Giriş kutularında düzenlemeler yaptıktan sonra, daha önce o sql kaydında bulunan verileri, düzenlendiği gibi üzerine yazmak için verileri göndermek istiyorum. Bulduğum kod şu oldu: Bir sql kodu girebilmek istiyorum. Bunu denedim ama işe yaramıyor. Sanırım yanlış yapıyorum.Girdi widget'larından SQL koduna veri aktarma

def submitedit(): 
    for entry in entries: 
     print(entry.get()) 



    db = sqlite3.connect('TestFile') 
    cursor = db.cursor() 

    cursor.execute('''UPDATE Table SET ID=?, Name=?, Desc=? WHERE ID=?''', 
    ("?"," ?"," ?").format(entry.get())) 
    cursor.close() 
    db.commit() 
    db.close() 

Ben de denedim:

db = sqlite3.connect('TestFile') 
    cursor = db.cursor() 

    cursor.execute('''UPDATE Table SET ID=?, Name=?, Desc=? WHERE ID=?''', 
    (entry.get()) 
    cursor.close() 
    db.commit() 
    db.close() 

teşekkür ederiz. Eğer cursor.execute doğrultusunda değerlerinizi koymak sipariş aksi yanlış değerler yanlış zamanda kullanılacaktır, sql değişken kullanılan sıraya kadar eşleşmesi gerektiğini

cevap

0
with sqlite3.connect('TestFile') as db: 
    cursor = db.cursor() 
    cursor.row_factory = sqlite3.Row 
    sql = "UPDATE Table Name=?, Desc=? WHERE ID=?" 
    cursor.execute(sql,(Name,Descr)) 
    db.commit() 

Not. Ayrıca, birincil anahtarınız hangisinin olduğunu tahmin ettiğim şeyden dolayı set ID'yi çıkardım, veritabanlarında birincil anahtarı düzenlememelisiniz. Birincil anahtar da otomatik olarak artırılmalıdır.