java - Getting SQLite no such column -


this database, can please me it? think there nothing wrong tried reinstalling app update database still doesnt work. says there no such column _url.

this class creates database:

mysqlitehelper.java

public class mysqlitehelper extends sqliteopenhelper {      /**      * table locations      * | _id | _latitude | _longitude | _time | _provider      */      public static final string table_location = "location";     public static final string column_locid = "_id";     public static final string column_latitude = "_latitude";     public static final string column_longitude = "_longitude";     public static final string column_time = "_time";     public static final string column_accuracy = "_accuracy";     public static final string column_provider = "_provider";       /**      * table pictures      * | _id | _url | _latitude | _longitude | _time      */      public static final string table_picture = "picture";     public static final string column_pic_id = "_id";     public static final string column_pic_url = "_url";     public static final string column_pic_latitude = "_latitude";     public static final string column_pic_longitude = "_longitude";     public static final string column_pic_time = "_time";     public static final string column_pic_accuracy = "_accuracy";      /**      * table accelerometer      * | _id | _x | _y | _z | _time      */      public static final string table_accelerometer = "accelerometer";     public static final string column_accelerometer_id = "_id";     public static final string column_accelerometer_x = "_x";     public static final string column_accelerometer_y = "_y";     public static final string column_accelerometer_z = "_z";     public static final string column_accelerometer_time = "_time";      /**      * table sound      * | _id | _amplitude | _time      */      public static final string table_amplitude = "sound";     public static final string column_amplitude_id = "_id";     public static final string column_amplitude_amplitude = "_amplitude";     public static final string column_amplitude_time = "_time";      private static final string database_name = "memory.db";     private static final int database_version = 1;      // database creation sql statement location     private static final string database_create_loc = "create table "             + table_location + "(" + column_locid             + " integer primary key autoincrement, " + column_latitude             + " double not null, "+ column_longitude + " double not null, "             + column_time + " text not null, " + column_accuracy + " text not null, " +             column_provider + " text not null " +");";      // database creation sql statement picture     private static final string database_create_pic = "create table "             + table_picture + "(" + column_pic_id             + " integer primary key autoincrement, " + column_pic_url             + " text not null, " + column_latitude             + " double, "+ column_longitude + " double, "             + column_time + " text, " + column_pic_accuracy + " text " + ");";      // database creation sql statement accelerometer     private static final string database_create_accelerometer = "create table "             + table_accelerometer + "(" + column_accelerometer_id             + " integer primary key autoincrement, " + column_accelerometer_x             + " float not null, " + column_accelerometer_y             + " float not null, "+ column_accelerometer_z + " float not null, "             + column_accelerometer_time + " text " +");";      // database creation sql statement sound     private static final string database_create_amplitude = "create table "             + table_amplitude + "(" + column_amplitude_id             + " integer primary key autoincrement, " + column_amplitude_amplitude             + " double not null, "              + column_amplitude_time + " text " +");";      public mysqlitehelper(context context) {         super(context, database_name, null, database_version);     }      @override     public void oncreate(sqlitedatabase database) {         database.execsql(database_create_loc);         database.execsql(database_create_pic);         database.execsql(database_create_accelerometer);         database.execsql(database_create_amplitude);     }      @override     public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {         log.w(mysqlitehelper.class.getname(),                 "upgrading database version " + oldversion + " "                         + newversion + ", destroy old data");         db.execsql("drop table if exists " + table_location);         db.execsql("drop table if exists " + table_picture);         db.execsql("drop table if exists " + table_accelerometer);         db.execsql("drop table if exists " + table_amplitude);         oncreate(db);     }  }  

i dont find wrong in tables. checked spaces.

the error is:

03-24 17:51:39.851: e/sqlitelog(18574): (1) no such column: _url 03-24 17:51:39.855: w/dalvikvm(18574): threadid=11: thread exiting uncaught exception (group=0x40eb0300) 03-24 17:51:39.863: e/androidruntime(18574): fatal exception: thread-799 03-24 17:51:39.863: e/androidruntime(18574): android.database.sqlite.sqliteexception: no such column: _url (code 1): , while compiling: select _id, _url, _latitude, _longitude, _time, _accuracy picture 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqliteconnection.nativepreparestatement(native method) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqliteconnection.acquirepreparedstatement(sqliteconnection.java:882) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqliteconnection.prepare(sqliteconnection.java:493) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitesession.prepare(sqlitesession.java:588) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqliteprogram.<init>(sqliteprogram.java:58) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitequery.<init>(sqlitequery.java:37) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitedirectcursordriver.query(sqlitedirectcursordriver.java:44) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitedatabase.rawquerywithfactory(sqlitedatabase.java:1314) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitedatabase.querywithfactory(sqlitedatabase.java:1161) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitedatabase.query(sqlitedatabase.java:1032) 03-24 17:51:39.863: e/androidruntime(18574):    @ android.database.sqlite.sqlitedatabase.query(sqlitedatabase.java:1200) 03-24 17:51:39.863: e/androidruntime(18574):    @ data.databaseinteraction.getallpictures(databaseinteraction.java:191) 03-24 17:51:39.863: e/androidruntime(18574):    @ main.insituapp.insituapp$3.run(insituapp.java:327) 

i have class uses database class insert , query data , database.

databaseinteraction.java

public class databaseinteraction {      // database fields     private sqlitedatabase database;     private mysqlitehelper dbhelper;     private string[] loccolumns = { mysqlitehelper.column_locid,             mysqlitehelper.column_latitude, mysqlitehelper.column_longitude,             mysqlitehelper.column_time, mysqlitehelper.column_accuracy,             mysqlitehelper.column_provider};      private string[] piccolumns = { mysqlitehelper.column_pic_id,             mysqlitehelper.column_pic_url, mysqlitehelper.column_pic_latitude,             mysqlitehelper.column_pic_longitude,             mysqlitehelper.column_pic_time, mysqlitehelper.column_pic_accuracy };      private string[] acccolumns = { mysqlitehelper.column_accelerometer_id,             mysqlitehelper.column_accelerometer_x, mysqlitehelper.column_accelerometer_y,             mysqlitehelper.column_accelerometer_z,             mysqlitehelper.column_accelerometer_time };      private string[] amplitudecolumns = { mysqlitehelper.column_amplitude_id,             mysqlitehelper.column_amplitude_amplitude,             mysqlitehelper.column_amplitude_time };      public databaseinteraction(context context) {         dbhelper = new mysqlitehelper(context);     }      public void open() throws sqlexception {         database = dbhelper.getwritabledatabase();     }      public void close() {         dbhelper.close();     }      public /*loc*/ long  createlocation(double latitude, double longitude, long time,             double accuracy, string provider) {          contentvalues values = new contentvalues();          values.put(mysqlitehelper.column_latitude, latitude);         values.put(mysqlitehelper.column_longitude, longitude);         values.put(mysqlitehelper.column_time, time);         values.put(mysqlitehelper.column_accuracy, accuracy);         values.put(mysqlitehelper.column_provider, provider);         open();         long insertid = database.insert(mysqlitehelper.table_location, null,                 values);         close();         return insertid;         /*cursor cursor = database.query(mysqlitehelper.table_location,                 loccolumns,                 mysqlitehelper.column_locid + " = " + insertid, null, null,                 null, null);          cursor.movetofirst();         loc newloc = cursortolocation(cursor);         cursor.close();          return newloc;*/     }      public long createpic(string url, double latitude, double longitude,             long time) {          contentvalues values = new contentvalues();         values.put(mysqlitehelper.column_pic_url, url);         values.put(mysqlitehelper.column_latitude, latitude);         values.put(mysqlitehelper.column_longitude, longitude);         values.put(mysqlitehelper.column_time, time);         open();         long insertid = database.insert(mysqlitehelper.table_picture, null,                 values);         close();         return insertid;         /*cursor cursor = database.query(mysqlitehelper.table_picture,                 piccolumns, mysqlitehelper.column_pic_id + " = " + insertid,                 null, null, null, null);          cursor.movetofirst();         pic newpic = cursortopicture(cursor);         cursor.close();          return newpic;*/     }      public long createaccelerometer(float x, float y, float z,             long time) {          contentvalues values = new contentvalues();          values.put(mysqlitehelper.column_accelerometer_x, x);         values.put(mysqlitehelper.column_accelerometer_y, y);         values.put(mysqlitehelper.column_accelerometer_z, z);         values.put(mysqlitehelper.column_accelerometer_time, time);         open();         long insertid = database.insert(mysqlitehelper.table_accelerometer, null,                 values);         close();         return insertid;     }      public long createsound(double amplitude, long time) {          contentvalues values = new contentvalues();          values.put(mysqlitehelper.column_amplitude_amplitude, amplitude);         values.put(mysqlitehelper.column_amplitude_time, time);          open();         long insertid = database.insert(mysqlitehelper.table_amplitude, null,                 values);         close();         return insertid;     }      public int deletelocation(long id) {         system.out.println("location deleted id: " + id);         open();         int value = database.delete(mysqlitehelper.table_location,                 mysqlitehelper.column_locid + " = " + id, null);         close();         return value;     }      public int deletepic(long id){         system.out.println("picture deleted id: " + id);         open();         int value = database.delete(mysqlitehelper.table_picture,                 mysqlitehelper.column_pic_id + " = " + id, null);         close();         return value;     }      public int deleteaccelerometer(long id){         system.out.println("accelerometer deleted id: " + id);         open();         int value = database.delete(mysqlitehelper.table_accelerometer,                 mysqlitehelper.column_accelerometer_id + " = " + id, null);         return value;     }      public int deletesound(long id){         system.out.println("sound deleted id: " + id);         open();         int value = database.delete(mysqlitehelper.table_amplitude,                 mysqlitehelper.column_amplitude_id + " = " + id, null);         close();         return value;     }      public list<loc> getalllocations() {         list<loc> alllocations = new arraylist<loc>();         open();         cursor cursor = database.query(mysqlitehelper.table_location,                 loccolumns, null, null, null, null, null);          cursor.movetofirst();         while (!cursor.isafterlast()) {             loc oneloc = cursortolocation(cursor);             alllocations.add(oneloc);             cursor.movetonext();         }         // make sure close cursor         cursor.close();         close();         return alllocations;     }      public list<pic> getallpictures() {         list<pic> allpictures = new arraylist<pic>();         open();         cursor cursor = database.query(mysqlitehelper.table_picture,                 piccolumns, null, null, null, null, null);          cursor.movetofirst();         while (!cursor.isafterlast()) {             pic onepic = cursortopicture(cursor);             allpictures.add(onepic);             cursor.movetonext();         }         // make sure close cursor         cursor.close();         close();         return allpictures;     }      public list<accelerometer> getallaccelerometervalues() {         list<accelerometer> allaccelerometervalues = new arraylist<accelerometer>();          cursor cursor = database.query(mysqlitehelper.table_accelerometer,                 acccolumns, null, null, null, null, null);          cursor.movetofirst();         while (!cursor.isafterlast()) {             accelerometer oneacc = cursortoaccelerometer(cursor);             allaccelerometervalues.add(oneacc);             cursor.movetonext();         }         // make sure close cursor         cursor.close();         return allaccelerometervalues;     }      public list<amplitude> getallsoundampitudes() {         list<amplitude> allsoundamplitudes = new arraylist<amplitude>();          cursor cursor = database.query(mysqlitehelper.table_amplitude,                 amplitudecolumns, null, null, null, null, null);          cursor.movetofirst();         while (!cursor.isafterlast()) {             amplitude onesound = cursortoamplitude(cursor);             allsoundamplitudes.add(onesound);             cursor.movetonext();         }         // make sure close cursor         cursor.close();         return allsoundamplitudes;     }      private loc cursortolocation(cursor cursor) {         loc location = new loc();         location.setlatitude(cursor.getdouble(1));         location.setlongitude(cursor.getdouble(2));         location.settime(cursor.getlong(3));         location.setaccuracy(cursor.getdouble(4));         return location;     }      private pic cursortopicture(cursor cursor) {         pic picture = new pic();         picture.setlatitude(cursor.getdouble(1));         picture.setlongitude(cursor.getdouble(2));         picture.settime(cursor.getlong(3));         return picture;     }      private accelerometer cursortoaccelerometer(cursor cursor) {         accelerometer acc = new accelerometer();         acc.setx(cursor.getfloat(1));         acc.sety(cursor.getfloat(2));         acc.setz(cursor.getfloat(3));         acc.settime(cursor.getlong(4));         return acc;     }      private amplitude cursortoamplitude(cursor cursor) {         amplitude sound = new amplitude();         sound.setamplitude(cursor.getdouble(1));         sound.settime(cursor.getlong(2));         return sound;     }  } 

please hint appreciated. ty in advance.

probably have different "picture" table structure, try deleting current application, oncreate(sqlitedatabase database) method create correct structure.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -