2015-04-15 39 views
1
db = sqlite3.connect("N:\WORK\Computing 4 Coursework\StockDataBaseSystem.db") 
db.execute("CREATE TABLE Customers (Title str, FirstName str, LastName str, HouseNumber int, StreetName str, PostCode str, City str, PhoneNumber str, CustomerID str)") 
db.execute("create table Products (ProductName text, Price int, Profit int, Sold int, InStock int, Size int, ProductID text)") 
db.execute("create table Orders (TotalPrice float, TotalProfit float, DateOrdered date, DateDelivered date, QuantityOrdered int, OrderID text)") 
db.commit() 

我的程序基本上是一個GUI數據庫軟件,它允許將客戶詳細信息添加到數據庫中,一切都正常工作,直到它聲明'沒有這樣的表存在:客戶'嘗試向數據庫添加一個值。我已經檢查過我是否還沒有放棄桌子,但沒有我沒有(猜測這很好)。我的其他'產品'和'訂單'表已經在數據庫上創建,但不是客戶,因爲代碼是相同的,我覺得很奇怪。我會把整個程序放在這裏,但現在它大約有300行。不存在這樣的表格:客戶

+0

確實的SQLite 3支持'str'型列?傳統的SQL類型應該是'CHAR(n)'或'VARCHAR(n)'或該主題的變體,其中'n'是執行CREATE TABLE語句時逐字提供的數字(例如32)。你是否檢查過任何語句的錯誤回報 - 如果沒有,就像你的代碼所表明的那樣,爲什麼不呢? –

+0

如此技術性,抱歉,我不太擅長SQL,它對於一個計算項目。我確信SQlite3支持列中的字符串,錯誤實際上來自於我嘗試向「客戶」表中添加值的語句,但顯然是因爲它'不存在'顯然不能完成。我不太清楚你的意思與varchar等,因爲即時通訊不是很好的SQL,我只知道的基本知識。 – Patryk

回答

1

str不是sqlite中字符串的數據類型。您將需要使用文字。

https://www.sqlite.org/datatype3.html

+0

好吧歡呼,我想這個程序排序了另一個問題,但我仍然收到相同的錯誤。 – Patryk

+0

因此,將「db.execute」(「CREATE TABLE Customers(標題str,名字str,姓氏str,HouseNumber int,街道str,PostCode str,City str,PhoneNumber str,CustomerID str)」)「更改爲」db.execute(「 CREATE TABLE客戶(標題文本,名字文本,姓氏文本,HouseNumber文本,StreetName文本,PostCode文本,City文本,PhoneNumber文本,CustomerID文本)「)」仍導致表未被創建? – TDavis

+0

是的,這是正確的。 – Patryk

相關問題