Java 编译时:创建表错误
编译时,此错误显示: android.database.sqlite.SQLiteException:靠近“TABLEnewtable”:语法错误(代码1):,编译时:创建TABLEnewtable{id INTEGER PRIMERY KEY,editname TEXT,edittel TEXT,editskype TEXT,editaddress TEXT}Java 编译时:创建表错误,java,android,sql,Java,Android,Sql,编译时,此错误显示: android.database.sqlite.SQLiteException:靠近“TABLEnewtable”:语法错误(代码1):,编译时:创建TABLEnewtable{id INTEGER PRIMERY KEY,editname TEXT,edittel TEXT,editskype TEXT,editaddress TEXT} 公共类数据操纵器{ 私有静态最终字符串数据库\u NAME=“mydatabase.db”; 私有静态最终int数据库_VERSION
公共类数据操纵器{
私有静态最终字符串数据库\u NAME=“mydatabase.db”;
私有静态最终int数据库_VERSION=1;
静态最终字符串表\u NAME=“newtable”;
私有静态语境;
静态数据库数据库;
私有SQLiteStatement insertStmt;
私有静态最终字符串INSERT=“插入到”+表_NAME+”(editname、edittel、editskype、,
editaddress)值(?,?,?)”;
公共数据操纵器(上下文)
{
datamanipular.context=上下文;
OpenHelper OpenHelper=新的OpenHelper(DataManipular.context);
DataManipular.db=openHelper.getReadableDatabase();
this.insertStmt=DataManipulator.db.compileStatement(INSERT);
}
公共长插入(字符串editname、字符串edittel、字符串editskype、字符串editaddress)
{
this.insertStmt.bindString(1,editname);
this.insertStmt.bindString(2,edittel);
this.insertStmt.bindString(3,editskype);
this.insertStmt.bindString(4,editaddress);
返回此.insertStmt.executeInsert();
}
public void deleteAll()
{
db.delete(表名称,null,null);
}
公共列表selectAll()
{
列表=新的ArrayList();
Cursor Cursor=db.query(表名称,新字符串[]{“id”,“editname”,“edittel”,“editskype”,
“editaddress”},null,null,null,null,“名称asc”);
int x=0;
if(cursor.moveToFirst())
{
做{
字符串[]bb=新字符串[]{
cursor.getString(0)、cursor.getString(1)、cursor.getString(2)、cursor.getString(3)、cursor.getString(4)};
列表。添加(bb);
x=x+1;
}
while(cursor.moveToNext());
}
if(cursor!=null&!cursor.isClosed())
{
cursor.close();
}
cursor.close();
退货清单;
}
公共无效删除(int rowId)
{
db.delete(表名称,null,null);
}
私有静态类OpenHelper扩展了SQLiteOpenHelper
{
OpenHelper(上下文)
{
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
//TODO自动生成的方法存根
db.execSQL(“创建表”+表名称+“{id整数素数键,editname文本,edittel文本,editskype文本,editaddress文本}”);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
//TODO自动生成的方法存根
db.execSQL(“如果存在删除表”+表名称);
onCreate(db);
}
}
}
您有很多基本的SQL语法问题。请考虑学习一些基本的SQL和STACKTraceRead。
TABLE
和标识符(如newtable
)之间添加空格
例如,改变
"CREATE TABLE" +TABLE_NAME+
到
及
到
CREATE TABLE
中的括号应该是(
)
而不是{
}
PRIMERY
中的打字错误应为PRIMARY
加上可能更多;这些只是在查看SQL的前10秒钟发现的问题。您有很多基本的SQL语法问题。请考虑学习一些基本的SQL和STACKTraceRead。
TABLE
和标识符(如newtable
)之间添加空格
例如,改变
"CREATE TABLE" +TABLE_NAME+
到
及
到
CREATE TABLE
中的括号应该是(
)
而不是{
}
PRIMERY
中的打字错误应为PRIMARY
加上可能更多;这些只是在查看SQL的前10秒发现的问题。检查此项:
db.execSQL("CREATE TABLE " +TABLE_NAME+ "(id INTEGER PRIMARY KEY, editname TEXT, edittel TEXT, editskype TEXT, editaddress TEXT )");
检查此项:
db.execSQL("CREATE TABLE " +TABLE_NAME+ "(id INTEGER PRIMARY KEY, editname TEXT, edittel TEXT, editskype TEXT, editaddress TEXT )");
检查您的
SQL
syntax您的语法错误是由“创建表”后缺少空格引起的检查您的SQL
syntax您的语法错误是由“创建表”后缺少空格引起的
"insert into " +TABLE_NAME+
db.execSQL("CREATE TABLE " +TABLE_NAME+ "(id INTEGER PRIMARY KEY, editname TEXT, edittel TEXT, editskype TEXT, editaddress TEXT )");