package com.DB;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
public class DBDB extends ListActivity {
/** Called when the activity is first created. */
private static String DB_name="text.db";
private static String DB_table="text_table";
private static int DB_version=1;
public class DBopen extends SQLiteOpenHelper{
public DBopen(Context context) {
super(context, DB_name, null, DB_version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE "+ DB_table + "id PRIMARY KEY,"+"age INT(3)"+");");
String val="INSERT INTO "+ DB_table + "(age)"+ "VALUES ";
db.execSQL(val + "(24)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS "+ DB_table);
onCreate(db);
}
public List<String> retrive(){
SQLiteDatabase db=getReadableDatabase();
Cursor c=db.query(DB_table, new String[]{"age"}, null, null, null, null, null);
try{
item.clear();
int index1=c.getColumnIndex("age");
int i=0;
if(c.moveToFirst()){
do{
int age=c.getInt(index1);
item.add(i+" "+age);
}while(c.moveToNext());
}
}finally{
if(c!=null){
c.close();
}
}
return item;
}
}
private static DBopen open;
List<String> item=null;
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
open=new DBopen(this);
item=open.retrive();
adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,item);
}
public void onActivity(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode, resultCode, data);
SQLiteDatabase db=open.getReadableDatabase();
if(Activity.RESULT_OK==resultCode){
Bundle BD=data.getExtras();
String val="INSERT INTO"+ DB_table+ "(age)"+"VELUS ";
db.execSQL(val+"("+BD.getInt("age")+");");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Create and add new menu items.
MenuItem itemAdd = menu.add(0, 0, Menu.NONE, "새로만들기");
MenuItem itemRem = menu.add(0, 1, Menu.NONE, "종료");
// Assign icons
itemAdd.setIcon(android.R.drawable.ic_menu_add);
itemRem.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
startActivityForResult(new Intent(this, DBDB1.class), 0);
return true;
case 1:
finish();
return true;
}
return (super.onOptionsItemSelected(item));
}
}
package com.DB;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class DBDB1 extends Activity {
EditText e1;
Button b1;
Intent intent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
e1=(EditText)findViewById(R.id.e1);
b1=(Button)findViewById(R.id.b1);
// TODO Auto-generated method stub
b1.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
intent=new Intent(DBDB1.this,DBDB.class);
intent.putExtra("age", e1.getText().toString());
startActivityForResult(intent,0);
}
});
}
}
이렇게 DB코딩을 했는데 Can't upgrade read-only database from version 0 to 1 란 에러가 떠요..
이것의 해결책 좀 알려주시면 감사하겠습니다.




table 만드는 코드가 잘못된 경우일겁니다.