2014-02-06 3 views
1

나는 안드로이드 데이터베이스 애플리케이션을 개발했다.
문제는 추가 버튼을 클릭하면 데이터가 성공적으로 추가되었다는 메시지가 표시된다는 것입니다.
그러나 데이터가 데이터베이스에 삽입되지 않습니다.
그때 SQLite는 뷰어를 사용하여 데이터베이스를 열고 거기에 내가 삽입 된 데이터 중 하나를 찾을 수 없습니다 ...데이터가 Android 데이터베이스의 SQLite 데이터베이스에 삽입되지 않았습니까?

등록 페이지 코드 :

package com.example.dbapp; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

public class Register extends Activity { 

Button add; 
TextView b,c; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 
    add = (Button) findViewById(R.id.btnReg); 
    b = (TextView) findViewById(R.id.etName); 
    c = (TextView) findViewById(R.id.etOccu); 
    add.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      try { 
       String name = b.getText().toString(); 
       String occ = c.getText().toString(); 
       DataCon entry = new DataCon(Register.this); 
       entry.open(); 
       entry.createEntry(name, occ); 
       entry.close(); 
       Toast toast = Toast.makeText(getApplicationContext(), "Sucess", Toast.LENGTH_SHORT); 
       toast.show(); 
      } 
      catch(Exception e) { 
       String err = e.toString(); 
       Toast toast = Toast.makeText(getApplicationContext(), err,   Toast.LENGTH_SHORT); 
       toast.show(); 
      } 
     } 
    }); 
} 

데이터베이스 연결 코드 :

package com.example.dbapp; 

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

public class DataCon { 
public static final String rowid = "_id"; 
public static final String name = "persons_name"; 
public static final String hot = "persons_hotness"; 

private static final String DB_NAME = "myDB"; 
private static final String DB_TABLE = "tbl_me"; 
private static final int DB_VER  = 1; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper { 

    public DbHelper(Context context) { 
     super(context, DB_NAME, null, DB_VER); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DB_TABLE + " (" + rowid + 
       " INTEGER PRIMARY KEY AUTOINCREMENT, " + name + "TEXT    NOT NULL, " + 
       hot + " TEXT NOT NULL);"); 
    } 

    @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 DataCon(Context c) { 
    ourContext = c; 
} 

public DataCon open() { 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 
} 
public void close() { 
    ourHelper.close(); 
} 

public long createEntry(String name2, String occ) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(name, name2); 
    cv.put(hot, occ); 
    return ourDatabase.insert(DB_TABLE, null, cv); 
} 
} 

이제 어떻게 문제를 해결할 수 있습니까? 감사합니다

+0

LogCat에 오류가 있습니까? 앱에서 동일한 데이터를 읽으십시오. – Sanjeev

+0

당신의 logcat을 게시하시오 오류가 있으면? – Lokesh

+0

아니요 LogCat 오류가 없습니다. 또한 내 응용 프로그램에서 데이터를 읽으려고했지만 실패했습니다 ... ... ( – user3279100

답변

1

SQL에 오류가 있습니다. 열 이름과 유형 사이에 공백을 넣지 않았습니다. 올바른 하나가되어야합니다

db.execSQL("CREATE TABLE " + DB_TABLE + " (" + rowid + 
" INTEGER PRIMARY KEY AUTOINCREMENT, " + name + " TEXT NOT NULL, " + 
         ---------------------------^
hot + " TEXT NOT NULL);");` 
+0

작동하지 않습니다 ... :( – user3279100

+0

오류가 발생했습니다? 만든 테이블을 본 적이 있습니까? 데이터베이스를 삭제하고 시도하십시오. –

+0

아니요 오류가 없습니다. 나는 sqlite 뷰어를 사용하여 만든 테이블을 보았습니다 ...하지만 데이터가 없습니다 – user3279100

관련 문제