我正在尝试为 Android 手机构建一个费用应用程序,我需要一种显示费用的方法。计划(对于我当前的步骤)是允许用户查看他们的费用。我想显示一个类似日历的屏幕,如果一天至少有一笔费用,则为按钮使用不同的颜色。
我的问题是在sqlite3
表中插入信息。这是我的代码:
require "sqlite3"
--create path
local path = system.pathForFile("expenses.sqlite", system.DocumentsDirectory )
file = io.open( path, "r" )
if( file == nil )then
-- Doesn't Already Exist, So Copy it In From Resource Directory
pathSource = system.pathForFile( "expenses.sqlite", system.ResourceDirectory )
fileSource = io.open( pathSource, "r" )
contentsSource = fileSource:read( "*a" )
--Write Destination File in Documents Directory
pathDest = system.pathForFile( "expenses.sqlite", system.DocumentsDirectory )
fileDest = io.open( pathDest, "w" )
fileDest:write( contentsSource )
-- Done
io.close( fileSource )
io.close( fileDest )
end
db = sqlite3.open( path )
--setup the table if it doesn't exist
local tableSetup = [[CREATE TABLE IF NOT EXISTS expenses (id INTEGER PRIMARY KEY, amount, description, year, month, day);]]
db:exec(tableSetup)
local tableFill = [[INSERT INTO expenses VALUES (NULL,']] .. 15 .. [[',']] .. "Groceries" .. [[',']] .. 2013 .. [[',']] .. 4 .. [[',']] .. 8 ..[[');]]
db:exec(tableFill)
for row in db:nrows("SELECT * FROM expenses") do
print("hi")
if row.year == dateTable[i].year and row.month == dateTable[i].month and row.day == dateTable[i].day then
flag = dateTabel[i].day
end
end
我到处查看是否使用了错误的 sqlite3 命令,因为我对它不是很熟悉,但是我尝试了所有找到的东西,但没有任何效果。该print("hi")
行不执行,因此告诉我表中没有行。
另外,如果我说db:nrows("SELECT year, month, day FROM expenses")
, sqlite3 给我一个错误,说没有年份列。我的总体猜测是我没有将信息正确地插入表格中,但我已经尝试了我能想到的一切。任何人都可以帮忙吗?