这是 logcat 窗口显示的异常
06-08 11:25:55.532 8480-8480/example.com.shareit E/SQLiteLog: (1) near "group": syntax error
06-08 11:25:55.542 8480-8480/example.com.shareit E/SQLiteDatabase: Error inserting amount=100 share1=0 share2=100 share3=0 paid2=0 share4=0 paid3=0 description=Food paid1=100 paid4=0 group=4 date=6/8/2016
06-08 11:25:55.542 8480-8480/example.com.shareit E/SQLiteDatabase: android.database.sqlite.SQLiteException: near "group": syntax error (code 1): , while compiling: INSERT INTO contacts(amount,share1,share2,share3,paid2,share4,paid3,description,paid1,paid4,group,date) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
Run Code Online (Sandbox Code Playgroud)
希望有人理解这一点,这是我的 InsertContact()
public long insertContact(int amount, String description, String date, int paid1, int paid2,int paid3,int paid4, int share1, int share2,int share3,int share4,long group) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_AMOUNT, amount);
initialValues.put(KEY_DESCRIPTION, description);
initialValues.put(KEY_DATE, date);
initialValues.put(KEY_PAID1, paid1);
initialValues.put(KEY_PAID2, paid2);
initialValues.put(KEY_PAID3, paid3);
initialValues.put(KEY_PAID4, paid4);
initialValues.put(KEY_SHARE1, share1);
initialValues.put(KEY_SHARE2, share2);
initialValues.put(KEY_SHARE3, share3);
initialValues.put(KEY_SHARE4, share4);
initialValues.put(KEY_GROUP, group);
return db.insert(DATABASE_TABLE, null, initialValues);
}
Run Code Online (Sandbox Code Playgroud)
这就是我调用这个方法的地方
public void saveBill(View view) {
description = ETdescription.getText().toString();
date = TVdate.getText().toString();
amount = Integer.parseInt(ETamount.getText().toString());
paid1 = Integer.parseInt(ETpaid1.getText().toString());
paid2 = Integer.parseInt(ETpaid2.getText().toString());
paid3 = Integer.parseInt(ETpaid3.getText().toString());
paid4 = Integer.parseInt(ETpaid4.getText().toString());
share1 = Integer.parseInt(ETshare1.getText().toString());
share2 = Integer.parseInt(ETshare2.getText().toString());
share3 = Integer.parseInt(ETshare3.getText().toString());
share4 = Integer.parseInt(ETshare4.getText().toString());
sumPaid = paid1 + paid2 + paid3 + paid4;
sumShare = share1 + share2 + share3 + share4;
if (a == false) {
Toast.makeText(this, "Please Select Date", Toast.LENGTH_SHORT).show();
} else {
if ((amount == sumPaid) && (amount == sumShare)) {
DBAdapter db = new DBAdapter(this);
//---add a contact---
db.open();
long id = db.insertContact(amount, description, date, paid1, paid2, paid3, paid4, share1, share2, share3, share4, ++index);
//id = db.insertContact("Mary Jackson", "mary@jackson.com");
db.close();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Sum of Shares or Paid is not equal to total amount", Toast.LENGTH_SHORT).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
“组”这是造成问题的原因。尝试使用mGroup(或其他任何东西)而不是 group。
原因:group是sql中的保留字(这里是group by子句)。
SELECT name, sum(price) FROM YOUR_TABLE GROUP BY name
Run Code Online (Sandbox Code Playgroud)
所以你不能使用 GROUP 或 group。
所以你的方法应该是:
public long insertContact(int amount, String description, String date,
int paid1, int paid2,int paid3,
int paid4, int share1, int share2,
int share3,int share4,long mGroup){
//Put code here.
initialValues.put(KEY_GROUP, mGroup);
}
Run Code Online (Sandbox Code Playgroud)
编辑
也是如果你已经KEY_GROUP = "group";定义。把它也改成别的东西。最后一点。也不要使用日期。它也是保留的。
祝你好运。
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |