마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

no such table 뜨는데 문제점이 뭔지좀 봐주세요ㅜㅜ(풀소스 추가)

0 추천

package com.example.mjfitness;


import java.io.File


public class SignupActivity extends Activity implements OnClickListener {
    EditText edit_id, edit_pass;
    Spinner spinner;
   
 public SQLiteDatabase db;
 public Cursor cursor;
 public SimpleCursorAdapter Adapter=null;
 public SimpleCursorAdapter AdapterStomach=null;
 public SimpleCursorAdapter AdapterColon=null;
 public SimpleCursorAdapter AdapterLiver=null;
 public SimpleCursorAdapter AdapterBreast=null;
 public SimpleCursorAdapter AdapterCervix=null;
 public static final String ROOT_DIR = "/data/data/com.example.mjfitness/databases/";
 ProductDBHelper mHelper;
 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.signup);
        setDB();
        spinner = (Spinner) findViewById(R.id.spinner_active);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.active_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        Button btn = (Button)findViewById(R.id.button_send);
        btn.setOnClickListener(this);
        Button btn2 = (Button)findViewById(R.id.button_cancel);
        btn2.setOnClickListener(this);
  edit_id = (EditText) findViewById(R.id.edit_id);
  edit_pass = (EditText) findViewById(R.id.edit_pass);
     mHelper=new ProductDBHelper(this);
    }

    @Override

    public void onClick(View v) {
     if (v.getId() == R.id.button_send){
      if ((edit_id.getText().toString().equals("")) ||
       (edit_pass.getText().toString().equals(""))) { 
     Toast.makeText(getApplicationContext(), "자료 입력 바람",
       Toast.LENGTH_SHORT).show(); }
   else {
    db = mHelper.getWritableDatabase();
    //Cursor cursor;
    //cursor = db.rawQuery("SELECT * FROM member WHERE edit_id = '"
    //   + edit_id.getText().toString() + "';", null);
    //cursor.moveToFirst();
    
       ContentValues values = new ContentValues();
       values.put("id", edit_id.getText().toString() );
       values.put("pass", edit_pass.getText().toString() );
       db.insert("member", null, values);
       db.close();
      
      
    AlertDialog.Builder alert = new AlertDialog.Builder(SignupActivity.this);
       alert.setTitle("알림");
       alert.setMessage("가입완료");
       alert.setPositiveButton("OK", null);
       alert.show();
    Intent intent1 = new Intent(SignupActivity.this, LoginActivity.class);
    startActivity(intent1);


   }
     }
     else if (v.getId() == R.id.button_cancel){
   Intent intent1 = new Intent(SignupActivity.this, LoginActivity.class);
   startActivity(intent1);
     }
    }

    class ProductDBHelper extends SQLiteOpenHelper{

     public ProductDBHelper(Context context) {
      super(context, "MemberList.db", null, 1);
      // TODO Auto-generated constructor stub
     }

     @Override
     public void onCreate(SQLiteDatabase db) {
      // TODO Auto-generated method stub
      
     }

     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
      
     }
      
      }
}

부탁드립니다ㅜㅜ db는 sqlite expert에서 만들었습니당

채채 (400 포인트) 님이 2013년 6월 7일 질문
채채님이 2013년 6월 7일 수정
public void setDB() {
    File folder = new File(ROOT_DIR);
    if(folder.exists()) {
   
    }
    else {
     folder.mkdirs();
     //Toast.makeText(this, "폴더생성", Toast.LENGTH_LONG).show();
    }

     AssetManager assetManager = getResources().getAssets();
     File outfile = new File(ROOT_DIR+"MemberList.db"); //--폰에 위치할 경로
   
     InputStream is = null;
      
     FileOutputStream fo = null;
    
     long filesize = 0;
          
          
     try {
      // --asset 폴더 및 복사할 DB 지정
      is = assetManager.open("MemberList.db", AssetManager.ACCESS_BUFFER);
       filesize = is.available(); //--사이즈 검증
      
      // 파일이 없거나 패키지 폴더에 설치된 DB파일이 포함된 DB파일 보다 크기가 같지않을 경우 DB파일을 덮어 쓴다.
       if (outfile.length() <= 0) {
       byte[] tempdata = new byte[(int) filesize];
       is.read(tempdata);
       is.close();
       outfile.createNewFile();
       fo = new FileOutputStream(outfile);
       fo.write(tempdata);
       fo.close();   
      }
       else
       {
        //Toast.makeText(this, "db있음", Toast.LENGTH_LONG).show();
      
       }
     } catch (IOException e) {
     Toast.makeText(this, "db이동실패", Toast.LENGTH_LONG).show();
     }  
    }

3개의 답변

0 추천
말그대로 테이블 못찾은거에여 ..테이블이 생성이 안되어있거나 기존에 생성된 테이블에 테이블명이 없을가능성이 있으니

차근차근 살펴보세요
건방진프로그래머 (26,630 포인트) 님이 2013년 6월 7일 답변
Sqlite expert 통해서 테이블은 만들었는데 그러네요..흠흠
0 추천
에러만 봐서는 테이블 생성이 안된것 같은데,

해결책을 찾을려면 DB에 관련된 풀소스라도 봐야 답변해드릴수 있을것같습니다.
Frog (3,910 포인트) 님이 2013년 6월 7일 답변
Sqlite expert에 테이블 만들고 했는데 안돼요.. 짐 집가는중이라 소스는 당장못올리겠네여
메일엔 알집폴더있는데 그거 보여드려도되나요?
0 추천
DB 파일 복사해서 쓰시나본대 하나씩 검증해보세요  무조건 소스짜놓고 생성되었다고 가정되는건 좋지않은 습관입니다

1. 디비 파일이 벅사가 되었는지 확인한다

2. 디비파일 경로를 확인한다.. (저장하거나 또는 호출하는곳)

3. 디비파일이 존재하면 디비를 직접 열어본다(하고자하는 테이블명이 있는지 확인)
건방진프로그래머 (26,630 포인트) 님이 2013년 6월 8일 답변
...