android.database.sqlite.SQLiteException:在“table”附近:语法错误(代码1):编译时:
我创建了一个SQLite Helper类来处理我的数据库。android.database.sqlite.SQLiteException:在“table”附近:语法错误(代码1):编译时:
我在运行我的代码时经常出现这个错误,但是我在创建表语法中找不到任何错误。
ERROR: android.database.sqlite.SQLiteException: near "table": syntax error (code 1): , while compiling:CREATE TABLE table (ID INTEGER PRIMARY KEY AUTOINCREMENT, ACCOUNT_HOLDER TEXT, DEBIT INTEGER, CREDIT INTEGER, BALANCE INTEGER)
package com.example.user.balancesheet;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DatabaseHelper extends SQLiteOpenHelper{
private static final int DB_Version=1;
private static final String Database="BalanceSheet.db";
public static String Table="table";
public DatabaseHelper(Context context) {
super(context, Database, null, DB_Version);
SQLiteDatabase db=this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
String query="CREATE TABLE " + Table +" (ID INTEGER PRIMARY KEY
AUTOINCREMENT, ACCOUNT_HOLDER TEXT, DEBIT INTEGER, CREDIT INTEGER,
BALANCE INTEGER)";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
db.execSQL("DROP IF EXIST " + Table);
onCreate(db);
}
public Boolean insertdata(String name, int deb, int cred, int bal){
ContentValues val=new ContentValues();
val.put("ACCOUNT_HOLDER", name);
val.put("DEBIT", deb);
val.put("CREDIT_HOLDER", cred);
val.put("BALANCE", bal);
SQLiteDatabase db=this.getWritableDatabase();
long result=db.insert(Table, null, val);
Log.d("METHOD","ADDLEDGER");
if(result==-1)
return false;
else
return true;
}
}
谢谢。我用'Tablename'取代了它。但它仍然显示相同的错误。 –
你把它改为'public static String Table =“tablename”'? 'tablename'不是关键字,所以它应该工作。尝试像'public static String Table =“table1”'。 – Renzo
工作。谢谢。 –
请参阅https://sqlite.org/lang_keywords.html –