Seite 1 von 1

sqlite3 insert problem

Verfasst: Sonntag 1. März 2015, 19:24
von d4rkdr4g0n1
Hallo,

ich habe ein Problem mit der sqlite3 Datenbank. Ich würde gerne ein paar eintrage machen und diese auch auslesen. Ich habe einen kleinen Code geschrieben der leider nicht so Funktioniert wie ich es mir erhofft habe.

Hier mein Codefile create_db.py zur erzeugung der DB

Code: Alles auswählen

import sqlite3


#datenbank erzeugen
conn = sqlite3.connect('test.db')
print "Erfolgreich DB angelegt"

#table erzeugen mit den param.
conn.execute('''CREATE TABLE COMPANY
	(ID INTEGER PRIMARY KEY AUTOINCREMENT,
		NAME TEXT NOT NULL,
		AGE INT NOT NULL,
		ADDRESS CHAR(50),
		SALARY REAL);''')
print "Erzeuge Table"

#ein paar dummy einträge
conn.execute("INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) \
      VALUES ( 'Greg', 32, 'Wien', 20000.00 )");

conn.execute("INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) \
      VALUES ( 'Peter', 25, 'Salzburg', 15000.00 )");

conn.execute("INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) \
      VALUES ( 'Franz', 23, 'Tirol', 20000.00 )");

conn.execute("INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) \
      VALUES ( 'Helga', 25, 'Steiermark', 65000.00 )");

conn.commit()
print "Eintraege erfolgreich eingetragen"
conn.close()


hier ist mein Codefile insert_db.py zum eintragen in die db

Code: Alles auswählen

import sqlite3

name = raw_input("Name: ")
age = int(input("Age: "))
address = raw_input("Address: ")
salary = int(input("Salary: "))

conn = sqlite3.connect("test.db")

conn.execute("INSERT INTO COMPANY(name, age, address, salary) values(?,?,?,?)",
	(name, age, address, salary))
und eine file zum auslesen_db.py

Code: Alles auswählen

import sqlite3

conn = sqlite3.connect("test.db")
print "Opened database successfully"

cursor = conn.cursor()
cursor.execute("SELECT * FROM COMPANY")

personen = []
for row in cursor.fetchall():
	personen.append(dict(id=row[0], name=row[1],address=row[2],salary=row[3]))
print personenaus
Das Problem ist wenn ich einen Eintrag machen will speichert es sich nicht in der db und somit kann ich es nicht auslesen.
Ich benutzte Windows 7 und python 2.7.
Zum aulesen der DB habe ich ein kleines prog. SqliteBrowser.

mfg Gregor

Re: sqlite3 insert problem

Verfasst: Sonntag 1. März 2015, 19:47
von Sirius3
@d4rkdr4g0n1: es fehlt ja auch ein commit. Aus den "input" willst Du sicher ein "raw_input" machen, und salary wolltest Du als float schreiben.

Re: sqlite3 insert problem

Verfasst: Sonntag 1. März 2015, 19:55
von d4rkdr4g0n1
achhh danke schön jetzt funktioniert es
und natürlich float bei salary :)