androidandroid-sqliteandroid-database

I am not able to open database and query on it


I am not able to open database and query it. I want to access a row of table that is passed from a different Java file using intent value.

import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;

public class Finish_kitchen extends Activity {
    GridView gridView;
    private imageAdapter imageAdapter;
    private SQLiteDatabase db;
    private static String DB_Path = "/mnt/sdcard/Kitchen_Data.db";
    private Cursor c;
    private String path;
    private ListView listView1;
    private ArrayList<String> Steps;
    private ArrayList<String> Image_path;
    private ArrayList<String> Audio_path;
    private int count;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.finish_kit);
        listView1 = (ListView) findViewById(R.id.listView1);
        Steps = new ArrayList<String>();
        Image_path = new ArrayList<String>();
        Audio_path = new ArrayList<String>();
        path = getIntent().getStringExtra("path");
        db = SQLiteDatabase.openDatabase(DB_Path, null, SQLiteDatabase.OPEN_READWRITE);
        c = db.query(path, null, null, null, null, null, null);
        c.moveToFirst();
        Steps.add(c.getString(1));
        Toast.makeText(getApplicationContext(), "heyaa gotcha", Toast.LENGTH_LONG).show();
    }
}

Logcat

 04-04 11:50:02.411: D/PackageItemInfo(26824): loadIcon(cached)name=org.example.beproj.MainActivity
    04-04 11:50:49.752: D/skia(26824): new locale 
    04-04 11:50:54.116: W/IInputConnectionWrapper(26824): showStatusIcon on inactive InputConnection
    04-04 11:52:06.674: W/MediaRecorder(26824): mediarecorder went away with unhandled events
    04-04 11:52:12.390: E/SQLiteLog(26824): (1) near "/": syntax error
    04-04 11:52:12.390: D/AndroidRuntime(26824): Shutting down VM
    04-04 11:52:12.390: W/dalvikvm(26824): threadid=1: thread exiting with uncaught exception (group=0x41b11ae0)
    04-04 11:52:12.400: E/AndroidRuntime(26824): FATAL EXCEPTION: main
    04-04 11:52:12.400: E/AndroidRuntime(26824): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.beproj/org.example.beproj.Finish_kitchen}: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: SELECT * FROM /storage/sdcard0/Kitchen/mnvx
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread.access$600(ActivityThread.java:145)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.os.Handler.dispatchMessage(Handler.java:99)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.os.Looper.loop(Looper.java:137)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread.main(ActivityThread.java:5099)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at java.lang.reflect.Method.invokeNative(Native Method)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at java.lang.reflect.Method.invoke(Method.java:511)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at dalvik.system.NativeStart.main(Native Method)
    04-04 11:52:12.400: E/AndroidRuntime(26824): Caused by: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: SELECT * FROM /storage/sdcard0/Kitchen/mnvx
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:888)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:499)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at org.example.beproj.Finish_kitchen.onCreate(Finish_kitchen.java:50)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.Activity.performCreate(Activity.java:5117)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150)
    04-04 11:52:12.400: E/AndroidRuntime(26824):    ... 11 more
    04-04 11:52:14.922: I/Process(26824): Sending signal. PID: 26824 SIG: 9

Solution

  • c = db.query(path, null, null, null, null, null, null);
    

    First parameter should be your table name. But you are giving a file path.

    Here is the error message-

    11:52:12.400: E/AndroidRuntime(26824): Caused by: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: SELECT * FROM /storage/sdcard0/Kitchen/mnvx