попробуйте напечатать таблицу sqlite3, используя python - PullRequest
0 голосов
/ 21 марта 2020

Привет, я новичок в python Я пытался создать новый класс, который обрабатывает с sqlite3 в моем методе чтения. Я пытаюсь напечатать некоторые var, но разве ничего не печатает, вы можете мне помочь? Вот код, вы можете это исправить и сказать мне, в чем проблема

class  SQLite_class() :
    file_name=''
    table_sql_name =''
   # con = sqlite3.connect(self.c)
    def creat_file_name(self):
        self.file_name = input("enter the SQL fille name !")
        self.file_name = self.file_name+'.sqlite'
        return self.file_name
    def conncection(self):
        conn = sqlite3.connect(self.file_name)
        return conn
    def creat_cursor(self):
        conn = self.conncection()
        cur = conn.cursor()
        return cur
    def del_table(self):
        cur = self.creat_cursor()
        cur.execute('DROP TABLE IF EXISTS '+self.table_sql)
    def creat_table(self):
        cur = self.creat_cursor()
        #adding a new option (name of table of more we need to add some {} and use the format function)
        cur.execute( '''CREATE TABLE IF NOT EXISTS {} (data TEXT, number INTEGER)'''.format(self.table_sql_name))
        self.commiting()
    def insrt(self):
        cur = self.creat_cursor()
        cur.execute('''INSERT INTO {} (data, number) VALUES (?, ?)'''.format(self.table_sql_name) ,('Thunderstruck', 20))
    def close(self):
      conn = self.conncection()
      conn.close()
    def commiting(self):
        conn = self.conncection()
        conn.commit()
    def read(self):
        cur = self.creat_cursor()
        cur.execute('''SELECT data, number FROM {}'''.format(self.table_sql_name))
        for row in cur: print(row)
test = SQLite_class()

test.creat_file_name()
test.table_sql_name = 'Track'
test.creat_table()
test.insrt()
test.commiting()
test.read()
test.commiting()
test.close()

1 Ответ

0 голосов
/ 21 марта 2020

Этот комментарий # con = sqlite3.connect(self.c) указывает, что вы знаете, что нужно сделать. Я подозреваю, что когда это не сработало, вы пошли по кроличьей норе, создавая связи повсюду. Программа должна установить одно соединение с БД. Каждый раз, когда он устанавливает соединение, он теряет то, что было раньше.

Он может объявить conn = '', затем вызвать conncection() один раз (и удалить его из других методов; возможно, им потребуется * 1006). * в качестве аргумента). Это потребует некоторых попыток, попробуйте еще раз, но это приведет вас к лучшему месту.

И не забудьте fetch строк после выполнения SELECT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...