Android 请给我一些指导,我这里得到的错误是由SQL错误或缺少数据库引起的
我有一个错误: java.lang.RuntimeException:无法启动活动 ComponentInfo{snmn.sportsconnectapplication/snmn.sportsconnectapplication.MainActivity}: android.database.sqlite.SQLiteException:无此列:名称(代码 1) :,编译时:选择名称、本地纬度、本地经度, createdby、dateverified、verified FROM Locations 错误代码:1(SQLITE_错误) 原因:SQL(查询)错误或缺少数据库。 (没有这样的列:name(代码1):,编译时:选择name、locallatitude、locallongitude、createdby、dateverified、verified FROM。) 地点) 我的代码Android 请给我一些指导,我这里得到的错误是由SQL错误或缺少数据库引起的,android,sql,sqlite,Android,Sql,Sqlite,我有一个错误: java.lang.RuntimeException:无法启动活动 ComponentInfo{snmn.sportsconnectapplication/snmn.sportsconnectapplication.MainActivity}: android.database.sqlite.SQLiteException:无此列:名称(代码 1) :,编译时:选择名称、本地纬度、本地经度, createdby、dateverified、verified FROM Locatio
public static final int DATABASE_VERSION =1;
private static final String CREATE_TABLE = " CREATE TABLE " +
DbContract.TABLE_NAME + "(" +
" _id integer primary key autoincrement, " +
DbContract.NAME + "text, " +
DbContract.LOCAL_LATITUDE + "text, " +
DbContract.LOCAL_LONGITUDE + "text, " +
DbContract.VERIFIED + "boolean, " +
DbContract.DATE_VERIFIED + "date, " +
DbContract.CREATED_BY +
"text);";`
private static final String DROP_TABLE = "drop table if exists "+DbContract.TABLE_NAME;
public DbHelper(Context context){
super(context,DbContract.DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_TABLE);
onCreate(db);
}
public void saveToLocalDatabase(String name, String locallatitude, String locallongitude, String createdby, Date dateverified, Boolean verified, SQLiteDatabase database){
ContentValues contentValues = new ContentValues();
contentValues.put(DbContract.LOCAL_LATITUDE,locallatitude);
contentValues.put(DbContract.LOCAL_LONGITUDE,locallongitude);
contentValues.put(DbContract.NAME,name);
contentValues.put(DbContract.CREATED_BY,createdby);
contentValues.put (DbContract.DATE_VERIFIED, String.valueOf(dateverified));
contentValues.put(DbContract.VERIFIED,verified);
database.insert(DbContract.TABLE_NAME,null,contentValues);
}
public Cursor readFromLocalDatabase (SQLiteDatabase database){
String[] projection = {DbContract.NAME,DbContract.LOCAL_LATITUDE,DbContract.LOCAL_LONGITUDE,DbContract.CREATED_BY,DbContract.DATE_VERIFIED,DbContract.VERIFIED};
return (database.query(DbContract.TABLE_NAME,projection,null,null,null,null,null));
}
列名和类型之间需要空白。例如,改变
DbContract.NAME + "text, " +
到
解决这些问题后,您可以卸载并重新安装应用程序,以重新触发
onCreate()
我已经按照您所说的那样尝试了,但它不起作用::错误代码:1(SQLITE\u错误),原因是:SQL(查询)错误或缺少数据库。(在“.”附近:语法错误(代码1):,编译时:创建表位置(android.support.customtabs.customaction.ID INTEGER主键自动递增、名称文本、locallatitude文本、locallatitude文本、createdby文本、验证布尔值、日期验证日期);)android.support.customtabs.customaction.ID
不属于这里-你搞乱了一些东西。它在代码中进行了一些更改,但只有在我卸载应用程序并再次运行时才起作用,但在我不卸载时不起作用it@season这是因为datasehelper的onCreate
方法只会自动调用一次数据库的生存期(即,只有当数据库不存在时才调用它,然后创建数据库)。您发布的代码没有这个问题。用后续问题更新您的问题。
DbContract.NAME + " text, " +