mardi 26 mai 2015

android.database.sqlite.SQLiteException: no such table

I know that there are a lot of topics on this error but I tried a lot of solutions and still I am stuck whit this error. It´s my first time playing around with SQLite, and I don´t understand what is happening wrong there.

05-26 08:34:20.369 23124-23124/com.danynuria.fmp D/ODOperations﹕ Overall Table Created 05-26 08:34:20.373 23124-23124/com.danynuria.fmp E/SQLiteLog﹕ (1) no such table: database_info 05-26 08:34:20.374 23124-23124/com.danynuria.fmp E/SQLiteDatabase﹕ Error inserting date=26 / 4 / 2015 county=Bedfordshire co2_saved=149 distance=1245 distance_type=run user_id=1 android.database.sqlite.SQLiteException: no such table: database_info (code 1): , while compiling: INSERT INTO database_info(date,county,co2_saved,distance,distance_type,user_id) VALUES (?,?,?,?,?,?) at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469) at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341) at com.danynuria.fmp.OverallDatabaseOperations.putInformation(OverallDatabaseOperations.java:73) at com.danynuria.fmp.MainActivity$1.onClick(MainActivity.java:121) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 05-26 08:34:20.374 23124-23124/com.danynuria.fmp D/ODOperations﹕ One row inserted

And my code:

package com.danynuria.fmp;

import android.app.DownloadManager;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import com.danynuria.fmp.OverallTableData.OverallTableinfo;

import java.sql.SQLException;


public class OverallDatabaseOperations extends SQLiteOpenHelper {

// Create integer that register version of database
private static final int overallDatabase_version = 1;


// Create query
public String CREATE_QUERY = "CREATE TABLE "+OverallTableinfo.OVERALL_TABLE_NAME+"( "+OverallTableinfo.USER_ID+" INTEGER, "+OverallTableinfo.DISTANCE+
        " INTEGER, "+OverallTableinfo.DISTANCE_TYPE+" TEXT, "+OverallTableinfo.COUNTY+" TEXT, "+OverallTableinfo.CO2_SAVED+
        " INTEGER, "+OverallTableinfo.DATE+" TEXT);";


// Creating the database using SQLiteOpenHelper constructor
public OverallDatabaseOperations(Context context) {

    super(context, OverallTableinfo.OVERALL_DATABASE_NAME, null, overallDatabase_version);
}


public void onCreate(SQLiteDatabase odb ){

  odb.execSQL(CREATE_QUERY);

    Log.d("ODOperations", "Overall Table Created");

}





public void onUpgrade(SQLiteDatabase arg0,int arg1, int arg2){



}


//  Create a method to insert data into database
public void putInformation(OverallDatabaseOperations dop, Integer id, Integer distance, String type, String county, Integer co2saved, String date) {

    // Create a SQLite database object
    SQLiteDatabase OSQ = dop.getWritableDatabase();

    // Create an object for content values
    ContentValues ncv = new ContentValues();

    // Passing the first column value
    ncv.put(OverallTableinfo.USER_ID, id);
    ncv.put(OverallTableinfo.DISTANCE, distance);
    ncv.put(OverallTableinfo.DISTANCE_TYPE, type);
    ncv.put(OverallTableinfo.COUNTY, county);
    ncv.put(OverallTableinfo.CO2_SAVED, co2saved);
    ncv.put(OverallTableinfo.DATE, date);

    // Inserting data into table
    OSQ.insert(OverallTableinfo.OVERALL_DATABASE_NAME, null, ncv);
    Log.d("ODOperations", "One row inserted");

}

}

And the other class:

package com.danynuria.fmp;

import android.provider.BaseColumns;


public class OverallTableData {


// Create constructor
public OverallTableData() {




}


// Create abstract class
public static abstract class OverallTableinfo implements BaseColumns {

    // Create first column in database
    public static final String USER_ID = "user_id";

    // Create second column in database
    public static final String DISTANCE = "distance";

    // Create third column in database
    public static final String DISTANCE_TYPE = "distance_type";

    // Create forth column in database
    public static final String COUNTY = "county";

    // Create fifth column in database
    public static final String CO2_SAVED = "co2_saved";

    // Create sixth column in database
    public static final String DATE = "date";


    // Define database name
    public static final String OVERALL_DATABASE_NAME = "database_info";

    // Define table name
    public static final String OVERALL_TABLE_NAME = "overall_info";


}


}

Any suggestions are highly appreciated

Aucun commentaire:

Enregistrer un commentaire