0

Hi I am newby in android programming I want sqlite database in android application for handling some database related stuff . I am developing application like it will scan some wifi devices from home get there vendor id should display in listview upon pressing any item from list it should send some udp massage to that respected device upon getting response to udp massage it should create again one listview for that response . I have implemented Udp related stuff and scanning wifi devices related stuff also but only this is remaining is upon getting devices i need to store that device for further udp related stuff and maintaining database can anyone have best suggestion .

lass IP_Channal_DB extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "note.db";
    private static final String Table_NAME = "Ip_channal_Table";
    private static final String Col_1 = "ID";
    private static final String Col_2 = "IP_Address";
    private static final String Col_3 = "Flag";
    private static final String Col_4 = "Channal_1";
    private static final String Col_5 = "Channal_2";
    private static final String Col_6 = "Channal_3";
    private static final String Col_7 = "Channal_4";

    private static final int SCHEMA_VERSION = 1;

    private static final String DATABASE_CREATE = "CREATE TABLE " + Table_NAME + " (" + Col_1 + " integer PRIMARY KEY autoincrement," + Col_2 + "TEXT," + Col_3 + "TEXT," + Col_4 + "TEXT," + Col_5 + "TEXT," + Col_6 + "TEXT," + Col_7 + "TEXT,)";


    public IP_Channal_DB(Context context) {

        super(context, DATABASE_NAME, null, SCHEMA_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.v("MainActivity","creating table");
        db.execSQL(DATABASE_CREATE);
        //db.execSQL("CREATE TABLE "+Table_NAME+"("+Col_1+" INTEGER PRIMARY KEY AUTOINCREMENT,"+Col_2+" TEXT,"+Col_3+"INTEGER,"+Col_4+" TEXT,"+Col_5+" TEXT,"+Col_6+" TEXT,"+Col_7+" TEXT);");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
   /* public Cursor getAll_IP()
    {
        return (getReadableDatabase().rawQuery("SELECT "+Col_1+", "+Col_2+" FROM "+Table_NAME,null));
    }*/
   public Cursor getAll_IP()
    {
        SQLiteDatabase db=this.getReadableDatabase();
        Cursor cur=db.rawQuery("SELECT "+Col_1+" as _id, "+Col_2+" from "+Table_NAME,new String [] {});

        return cur;
    }

}

and logcat window is

03-31 14:39:36.547 1681-1681/com.example.admin.myhome E/SQLiteLog: (1) no such table: Ip_channal_Table
03-31 14:39:36.557 1681-1681/com.example.admin.myhome E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.example.admin.myhome, PID: 1681
                                                                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admin.myhome/com.example.admin.myhome.MainActivity}: android.database.sqlite.SQLiteException: no such table: Ip_channal_Table (code 1): , while compiling: SELECT ID as _id, IP_Address from Ip_channal_Table
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2348)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
                                                                            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4019)
                                                                            at android.app.ActivityThread.access$900(ActivityThread.java:151)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:135)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5345)
                                                                            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:947)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
                                                                         Caused by: android.database.sqlite.SQLiteException: no such table: Ip_channal_Table (code 1): , while compiling: SELECT ID as _id, IP_Address from Ip_channal_Table
                                                                            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.<init>(SQLiteProgram.java:58)
                                                                            at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
                                                                            at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
                                                                            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
                                                                            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
                                                                            at com.example.admin.myhome.IP_Channal_DB.getAll_IP(NoteHolder.java:52)
                                                                            at com.example.admin.myhome.MainActivity$override.onCreate(MainActivity.java:131)
                                                                            at com.example.admin.myhome.MainActivity$override.access$dispatch(MainActivity.java)
                                                                            at com.example.admin.myhome.MainActivity.onCreate(MainActivity.java:0)
                                                                            at android.app.Activity.performCreate(Activity.java:6012)
                                                                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410) 
                                                                            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4019) 
                                                                            at android.app.ActivityThread.access$900(ActivityThread.java:151) 
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319) 
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                            at android.os.Looper.loop(Looper.java:135) 
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5345) 
                                                                            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:947) 
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742) 

1 Answers1

1

I developed a sample project which i used in my main application. I hope that helps you too.

DataBaseHandler.java

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;

public class DataBaseHandler extends SQLiteOpenHelper {

    public String BooksTable="Books";
    public String Book_Id="id";
    public String BookAuther="BookAuther";
    public String BookTitle="BookTitle";

    private  final int DB_Version=1;
    public DataBaseHandler(Context context,String DBName,int DBVersion){
        super(context, DBName,null,DBVersion);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("Create Table " + BooksTable + "(" + Book_Id + " INTEGER PRIMARY KEY, " + BookAuther + " Text, " + BookTitle + " Text);");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    public void addBook(Book book){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(Book_Id,book.getId());
        cv.put(BookAuther,book.getAuthor());
        cv.put(BookTitle,book.getTitle());

        db.insert(BooksTable, null, cv);
        db.close();
    }

    public ArrayList<Book> fetchAllBooks(){
        ArrayList<Book> booksList = new ArrayList<Book>();
        SQLiteDatabase db=this.getReadableDatabase();
        Cursor c= db.query(BooksTable, null, null, null, null, null, null);
        c.moveToFirst();
        while (!c.isAfterLast()){
            Book book = new Book();
            book.setId(c.getInt(0));
            book.setAuthor(c.getString(1));
            book.setTitle(c.getString(2));
            booksList.add(book);
            c.moveToNext();
        }
        db.close();
        return booksList;
    }
}

Book.java

public class Book {
private int id;
private String author;
private String title;

public void setId(int id) {
    this.id = id;
}

public void setAuthor(String author) {
    this.author = author;
}

public void setTitle(String title) {
    this.title = title;
}

public int getId() {
    return id;
}

public String getAuthor() {
    return author;
}

public String getTitle() {
      return title;
    }
}

MainActivity.java

DataBaseHandler db=new DataBaseHandler(getApplicationContext(),"DB_Name",1);
Book book=new Book();
book.setId(1);
book.setTitle("My Title");
book.setAuthor("Name of Author");
db.addBook(book);
Farhan
  • 442
  • 1
  • 6
  • 13