android - Table not found issue in SQLite -
i have written code information json file related specific youtube video , stores information need in database.
the parsing json file has no problem. when trying insert values in database error message appears telling me no such table exists.
here stack-trace:
07-31 08:42:22.451: i/database(365): sqlite returned: error code = 1, msg = no such table: youtube_videos 07-31 08:42:22.471: e/database(365): error inserting video_commentcount=70 video_countview=50 video_name=badly drawn boy - disillusion (directed garth jennings) video_url=https://www.youtube.com/watch?v=b11msns6wpu&feature=youtube_gdata_player video_likes=60 video_img=https://i1.ytimg.com/vi/b11msns6wpu/default.jpg video_descrption=my new playlist description 07-31 08:42:22.471: e/database(365): android.database.sqlite.sqliteexception: no such table: youtube_videos: , while compiling: insert youtube_videos(video_commentcount, video_countview, video_name, video_url,video_likes, video_img, video_descrption) values(?, ?, ?, ?, ?, ?, ?); 07-31 08:42:22.471: e/database(365): @ android.database.sqlite.sqlitecompiledsql.native_compile(native method)
and here database code:
package com.example.tstnetconnwithjson.db; import android.content.context; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqlitedatabase.cursorfactory; import android.database.sqlite.sqliteopenhelper; import android.util.log; public class youtube_db extends sqliteopenhelper { public static final string database_name="youtube_database"; private static final int database_version=1; private static final string database_table="youtube_videos"; public static final string[] cols_list={"video_name","video_descrption","video_img","video_url","video_countview","video_likes","video_commentcount"}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //end of declaring attributes , tables conents public youtube_db(context context) { super(context,database_name, null, database_version); // todo auto-generated constructor stub } @override public void oncreate(sqlitedatabase db) { // todo auto-generated method stub db.execsql( "create table" + database_name + "(" + cols_list[0] +" text not null , "+ cols_list[1] +" text not null , "+ cols_list[2]+" text not null , "+cols_list[3]+" text not null , "+cols_list[4]+" integer , "+cols_list[5] +" integer , "+cols_list[6]+" integer ) "); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // todo auto-generated method stub log.i("in upgrade", "ok"); } }
and here function insert information in database:
package com.example.tstnetconnwithjson.db; import com.example.tstnetconnwithjson.tables.videos; import android.content.contentvalues; import android.content.context; import android.database.sqlite.sqlitedatabase; import android.util.log; public class youtubedatabasemanager { sqlitedatabase sql_db; youtube_db my_database; public youtubedatabasemanager(context c){ my_database=new youtube_db(c); sql_db= my_database.getwritabledatabase(); }//end of costructor public long insert_youtube_info( videos video){ contentvalues contentvalues = new contentvalues(); contentvalues.put(youtube_db.cols_list[0], video.getvideoname()); contentvalues.put(youtube_db.cols_list[1], video.getdecscrption()); contentvalues.put(youtube_db.cols_list[2], video.getimageurl()); contentvalues.put(youtube_db.cols_list[3], video.getvediourl()); contentvalues.put(youtube_db.cols_list[4], "50"); contentvalues.put(youtube_db.cols_list[5], "60"); contentvalues.put(youtube_db.cols_list[6], "70"); long addresult ; addresult= sql_db.insert(youtube_db.database_table, null, contentvalues); if(addresult==-1) { log.i("add video", "add error.... "); } else { log.i("add video", "add:ok.... "); } return addresult; }
can tell me problem?
"create table" + database_name + "("
you missing space between name , <create table>
keyword. have change to:
"create table " + database_table + "("
otherwise, ddl
statement won't work.
later, try , reference table called "youtube_videos", doesn't exist. because never created it. it's typo.
Comments
Post a Comment