2016-05-13 41 views
1

我正在寫一個插入並檢索數據庫中的電影信息的小程序。如果我手動將信息輸入到.db文件中,程序將檢索它並在我的GUI文本框中完美顯示它。但是,如果我嘗試將這些文本框中的數據插入到數據庫中,它會在每個字段的末尾添加一個換行符。當我再次檢索它時,它最後有「\ n」。檢索工作很好,但不知何故線路中斷正在包含在我的插入。這裏是我的插入功能:SQLite和Python正在將不需要的換行插入到數據庫中

def addRecord(self): 
    newTitle = self.text_title.get(1.0, 'end') 
    newSynopsis = self.text_summary.get(1.0, 'end') 
    newCast = self.text_cast.get(1.0, 'end') 
    newRuntime = self.text_runtime.get(1.0, 'end') 
    newRating = self.text_rating.get(1.0, 'end') 
    newTrailer = self.text_trailer.get(1.0, 'end') 
    newDates = self.text_date2d.get(1.0, 'end') 
    newImage = self.text_image.get(1.0, 'end') 

    c.execute("INSERT INTO Movies (Title, Synopsis, Actors, Runtime, Rating, Trailer, Dates, Image) VALUES ('{}','{}','{}','{}','{}','{}','{}','{}');" 
       .format(newTitle, newSynopsis, newCast, newRuntime, newRating, newTrailer, newDates, newImage)) 
    conn.commit() 
+0

我決定添加[:-1]到每個「newBlah」變量中的信息之前,以切割換行符關閉的端部被插入到數據庫中。這解決了它,但我仍然不知道它爲什麼發生在第一位。 –

回答

2

Tkinter自動添加一個換行符作爲文本小部件的最後一個字符。僅獲取您或用戶插入的文本小部件內容的正確方法應該使用"end-1c"(「end」減一個字符),而不是"end"END

另外,爲了迂迴,第一個索引應該是一個字符串,而不是一個浮點數。在1.0的情況下,這並不重要,但您應該習慣於在文本小部件中始終使用字符串作爲索引。

例如:

newTitle = self.text_title.get("1.0", 'end-1c') 
+0

非常好,解決了它。感謝您的解釋! –

相關問題