【发布时间】:2015-04-24 14:22:23
【问题描述】:
您好,我收到一条 SQL 错误提示 E/SQLiteLog:(1)接近“每月”:语法错误
我相信这可能与我的 create Table 语句有关
private static final String CREATE_TABLE2 = "CREATE TABLE " + TABLE_NAME2 + " (" + UID +
" INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," + FIRST_LINE +
" VARCHAR(255)," + TOWN + " VARCHAR(255)," + COUNTY + " VARCHAR(255)," + ROOM_NO +
" INTEGER ," + ASKING_PRICE + " INTEGER ," + CURRENT_OFFER + " INTEGER ," + AGREED_PRICE +
" INTEGER ," + AGENT_NAME + " VARCHAR(255)," + AGENT_PHO_NUM + " VARCHAR(255)," + ESTATE_AGENT_NAME +
" VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255), "
+ DONE_UP_VALUE + " INTEGER ," +WEEKLY_ROOM_RATE+ " INTEGER ," +EXPECTED_RENT + " INTEGER ," + MAX_OFFER + " INTEGER ,"
+ DISCOUNT_PERCENT + " DECIMAL(3,2) ," + LOAN_TO_VALUE + " DECIMAL(3,2) ,"+ MORTGAGE_Interest + "DECIMAL(3,2) ," +
MAX_MORTGAGE + " INTEGER ," + DESPOSIT_NEEDED + " INTEGER ," + DESPOSIT_REPAYMENT_MONTHLY+ " INTEGER ," + REPAYMENT_ANNAUL + " INTEGER ,"
+STAMP_DUTY_PER + " DECIMAL(3,2) ," + STAMP_DUTY_ACT + " INTEGER ," +INSURENCES+ " INTEGER ," + TOTAL_PURCHASE_COSTS +
" INTEGER ," + TOTAL_MONEY_NEEDED + " INTEGER ," + MORTGAGE_REPAYMENT + " INTEGER ," +
BILLS_UTILS + " INTEGER ," + TOTAL_COST_PER_MONTH + " INTEGER ," + TOTAL_REFURB_COST + " INTEGER ," + TOTAL_PROJECT_COST +
" INTEGER ,"+ TOTAL_PROFIT + " INTEGER ,"+ RENTAL_PROFIT + " INTEGER);";
这是我添加到我的数据库的 insertData 方法
public long insertData2(String posCode, String firstLine, String town, String county, int roomNum,
int askingPrice, int currentOffer, int agreedPrice, String agentName,
String agentPhone, String estateAgentNam, int refurb, String Time, int doneUp,int expectedRent
, int weeklyRent, int maxOffer,double discountPercent, double LoanToValue,Double mortgageInterest
, int maxMOrtgage , int despositNeeded, int despositRepayment, int despositRepaymentAnnual, double stampDutyPer,
int stampDutyAct , int insurances, int totalPurchaseCost,int moneyNeeded, int mortgageRepayments,int billsUtils,
int costPerMonth, int refurbCost , int projectCost, int totalProfit, int rentProfit) {
ContentValues contentValues = new ContentValues();
contentValues.put(POST_CODE, posCode);
contentValues.put(FIRST_LINE, firstLine);
contentValues.put(TOWN, town);
contentValues.put(COUNTY, county);
contentValues.put(ROOM_NO, roomNum);
contentValues.put(ASKING_PRICE, askingPrice);
contentValues.put(CURRENT_OFFER, currentOffer);
contentValues.put(AGREED_PRICE, agreedPrice);
contentValues.put(AGENT_NAME, agentName);
contentValues.put(AGENT_PHO_NUM, agentPhone);
contentValues.put(ESTATE_AGENT_NAME, estateAgentNam);
contentValues.put(REFURB_COST, refurb);
contentValues.put(TIME_OF_APPOINTMENT, Time);
contentValues.put(DONE_UP_VALUE,doneUp);
contentValues.put(WEEKLY_ROOM_RATE,weeklyRent);
contentValues.put(EXPECTED_RENT,expectedRent);
contentValues.put(MAX_OFFER,maxOffer);
contentValues.put(DISCOUNT_PERCENT,discountPercent);
contentValues.put(LOAN_TO_VALUE,LoanToValue);
contentValues.put(MORTGAGE_Interest,mortgageInterest);
contentValues.put(MAX_MORTGAGE,maxMOrtgage);
contentValues.put(DESPOSIT_NEEDED,despositNeeded);
contentValues.put(DESPOSIT_REPAYMENT_MONTHLY,despositRepayment);
contentValues.put(REPAYMENT_ANNAUL,despositRepaymentAnnual);
contentValues.put(STAMP_DUTY_PER,stampDutyPer);
contentValues.put(STAMP_DUTY_ACT,stampDutyAct);
contentValues.put(INSURENCES,insurances);
contentValues.put(TOTAL_PURCHASE_COSTS,totalPurchaseCost);
contentValues.put(TOTAL_MONEY_NEEDED,moneyNeeded);
contentValues.put(MORTGAGE_REPAYMENT,mortgageRepayments);
contentValues.put(BILLS_UTILS,billsUtils);
contentValues.put(TOTAL_COST_PER_MONTH,costPerMonth);
contentValues.put(TOTAL_REFURB_COST,refurbCost);
contentValues.put(TOTAL_PROJECT_COST,projectCost);
contentValues.put(TOTAL_PROFIT,totalProfit);
contentValues.put(RENTAL_PROFIT,rentProfit);
long id = db.insert(TABLE_NAME2, null, contentValues);
return id;
}
我一直在看教程和在线检查,但我似乎看不出我哪里出错了,有人可以帮忙吗?
更新完整错误信息
翻新总成本=0 所需资金总额=1501 保险费=1 实际印花税=0 EstateAgentName=测试租金利润=11 抵押利息=1.0 AgreedPrice=0 AddressFirstLine=测试抵押还款=0 印花税百分比=0.0 项目总成本=1503 AskingPrice=3000 每月总成本=1 max_offer=-24 RefurbCost=0 总利润=3565275 需要存款=0 discount_percent=0.0 doneUpValue=3566778 County=test PostCode=test loan to value=1.0 NumberOfRooms=3 bills utils=1 Town=stevenage timeOfAppointment=27 AgentName=27 Max Mortgage=-24 还款年限=0 预计租金=12 AgentPhoneNumber=test
android.database.sqlite.SQLiteException: near "monthly": syntax error (code 1): , while compile: INSERT INTO Viewed(repayment Monthly,CurrentOffer,Total Purchase costs,weekly room rate,total refurb cost,Total Money需要,保险,实际印花税,房地产经纪人名称,租金利润,抵押利息,协议价格,地址第一行,抵押还款,印花税百分比,项目总成本,要价,每月总成本,最大报价,翻新成本,总利润,所需存款,折扣百分比, doneUpValue,county,PostCode,loan to value,NumberOfRooms,bills utils,Town,timeOfAppointment, AgentName,Max Mortgage,Repayment Annual,Expected rent, AgentPhoneNumber) VALUES (?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?)
【问题讨论】:
-
显示 CREATE_TABLE2 值的字符串
-
@PiotrGolinski 嗨对不起我有点新你是什么意思?
-
如果您在使用 val 'CREATE_TABLE2 ' 的行添加断点,您将可以看到它的外观(在调试模式下)。然后粘贴到这里
-
@PiotrGolinski 抱歉听起来像个大白痴,但我还是新手,我不知道如何使用 android studio 添加断点,
-
1.找到第 2 行。点击左侧,靠近第 3 行。应该可以看到红点 4 点击调试开始