-1
что я пытаюсь сделать, это создать таблицу, а затем вставить в нее некоторые значения и выбрать. Проблема, с которой я столкнулся, это приложение, к сожалению, останавливается. Я не знаю, в чем проблема.android Доступ к базе данных не работает
Мой код: Этот класс вызывает обработчик базе данных
public class SaveEvents extends Activity {
private static final String DB_NAME = "EventDB";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_product);
Bundle extras=getIntent().getExtras();
String event=extras.getString("event");
String date=extras.getString("date");
String college=extras.getString("college");
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
db.insert_data(event,date,college);
String c=db.select_data();
Toast.makeText(getApplicationContext(), "EventName: "+c+"", Toast.LENGTH_LONG).show();
}
}
Handler Database
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "EventDB";
private static final String TABLE_NAME = "eventlist";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// Category table create query
String CREATE_ITEM_TABLE;
CREATE_ITEM_TABLE = "CREATE TABLE eventlist(eventname varchar(100),eventdate varchar(100),college varchar(100));";
db.execSQL(CREATE_ITEM_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
void insert_data(String eventname,String date,String college)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("eventname", eventname);
values.put("eventdate",date);
values.put("college",college);
db.insert(TABLE_NAME,null,values);
db.close();
}
public String select_data()
{
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT eventname FROM eventlist where eventname='techcontest'";
String c=null;
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
c=cursor.getString(0);
return c;
}
}
Мой LogCat показывает
03-16 20:00:19.116 8378-8378/com.example.android E/SQLiteLog﹕ (1) no such table: eventlist
03-16 20:00:19.122 8378-8378/com.example.android E/SQLiteDatabase﹕ Error inserting college=acs university eventdate=2-02-15 eventname=techocontest
android.database.sqlite.SQLiteException: no such table: eventlist (code 1): , while compiling: INSERT INTO eventlist(college,eventdate,eventname) VALUES (?,?,?)
любой стекловидный? –
Ваш код базы данных 'insert_data()' должен быть в транзакции и передан, если вам нравится код возврата. http://www.vogella.com/tutorials/AndroidSQLite/article.html –
Можете ли вы удалить приложение с вашего устройства/эмулятора и попробовать еще раз? * Возможно, вы уже запустили это приложение с другим определением схемы базы данных, ваше приложение, возможно, уже создало «базу данных версии 1». 'OnCreate' вызывается только в том случае, если база данных еще не существует. Сообщение об ошибке« no such table: eventlist »указывает на то, что ваш onCreate не был вызван. * – Gorcyn