2016-04-13 25 views
-1

私はsqliteに関連するプロジェクトを持っています。私がデータを追加すると、アプリケーションは強制的に閉じる。私は、コードを介してsqliteにデータを追加することができましたが、フォームからデータを追加する際に問題があります。私は近くにアプリの力を経験した、誰が私を助けることができますか?SQLiteにデータを挿入するには?

この私のコード

PemainDbAdapter.java

public class PemainDbAdapter { 
public static final String KEY_ROWID = "_id"; 
public static final String KEY_NIM = "nim"; 
public static final String KEY_NAMA = "nama"; 
public static final String KEY_JURUSAN = "jurusan"; 
public static final String KEY_TELP = "no_telp"; 
public static final String KEY_UMUR = "umur"; 
public static final String TAG = "CountriesDbAdapter"; 
public DatabaseHelper mDbHelper; 
public SQLiteDatabase mDb; 
public static final String DATABASE_NAME = "mvp"; 
public static final String SQLITE_TABLE = "daftar_pemain"; 
public static final int DATABASE_VERSION = 1; 
public final Context mCtx; 
public static final String DATABASE_CREATE = 
     "CREATE TABLE if not exists " + SQLITE_TABLE + " (" + 
       KEY_ROWID + " integer PRIMARY KEY autoincrement," + 
       KEY_NIM + "," + 
       KEY_NAMA + "," + 
       KEY_JURUSAN + "," + 
       KEY_TELP + "," + 
       KEY_UMUR + "," + 
       " UNIQUE (" + KEY_NIM +"));"; 
public static class DatabaseHelper extends SQLiteOpenHelper { 
    DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     Log.w(TAG, DATABASE_CREATE); 
     db.execSQL(DATABASE_CREATE); 
    } 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
       + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS " + SQLITE_TABLE); 
     onCreate(db); 
    } 
} 
public PemainDbAdapter(Context ctx) { 
    this.mCtx = ctx; 
} 
public PemainDbAdapter open() throws SQLException { 
    mDbHelper = new DatabaseHelper(mCtx); 
    mDb = mDbHelper.getWritableDatabase(); 
    return this; 
} 
public void close() { 
    if (mDbHelper != null) { 
     mDbHelper.close(); 
    } 
} 
public long createPemain(String nim, String nama, String jurusan, String no_telp, String umur) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_NIM, nim); 
    initialValues.put(KEY_NAMA, nama); 
    initialValues.put(KEY_JURUSAN, jurusan); 
    initialValues.put(KEY_TELP, no_telp); 
    initialValues.put(KEY_UMUR, umur); 
    return mDb.insert(SQLITE_TABLE, null, initialValues); 
} 
public boolean deleteAllPemain() { 
    int doneDelete = 0; 
    doneDelete = mDb.delete(SQLITE_TABLE, null , null); 
    Log.w(TAG, Integer.toString(doneDelete)); 
    return doneDelete > 0; 
} 
public Cursor fetchPemainByName(String inputText) throws SQLException { 
    Log.w(TAG, inputText); 
    Cursor mCursor = null; 
    if (inputText == null || inputText.length() == 0) { 
     mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID, 
         KEY_NIM, KEY_NAMA, KEY_JURUSAN, KEY_TELP, KEY_UMUR}, 
       null, null, null, null, null, null); 
    } 
    else { 
     mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID, 
         KEY_NIM, KEY_NAMA, KEY_JURUSAN, KEY_TELP, KEY_UMUR}, 
       KEY_NAMA + " like '%" + inputText + "%'", null, 
       null, null, null, null, null); 
    } 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 
} 
public Cursor fetchAllPemain() { 
    Cursor mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID, 
        KEY_NIM, KEY_NAMA, KEY_JURUSAN, KEY_TELP, KEY_UMUR}, 
      null, null, null, null, null, null); 

    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 
} 
public void insertSomePemain() { 
    createPemain("125410011", "Adi Saputra", "Teknik Informstika", "081904445501", "20 Tahun"); 
    createPemain("125410012", "Mukti Setyawan", "Teknik Informatika", "081904445502", "19 Tahun"); 
    createPemain("125410013", "Titit", "Siatem Informasi", "081904445503", "21 Tahun"); 

} 

Input_Pemain.java

public class Input_Pemain extends Activity { 
public PemainDbAdapter dbHelper; 
private EditText editTextNim, editTextNama, editTextJurusan, editTextTelepon, editTextUmur; 
private Button btnInput; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_input__pemain); 

    this.editTextNim = (EditText) this.findViewById(R.id.editNIM); 
    this.editTextNama = (EditText) this.findViewById(R.id.editNama); 
    this.editTextJurusan = (EditText) this.findViewById(R.id.editJurusan); 
    this.editTextTelepon = (EditText) this.findViewById(R.id.editTelepon); 
    this.editTextUmur = (EditText) this.findViewById(R.id.editUmur); 
    this.btnInput = (Button) this.findViewById(R.id.btnInput); 

    btnInput.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String nim = editTextNim.getText().toString().trim(); 
      String nama = editTextNama.getText().toString().trim(); 
      String jurusan = editTextJurusan.getText().toString().trim(); 
      String no_telp = editTextTelepon.getText().toString().trim(); 
      String umur = editTextUmur.getText().toString().trim(); 

      if(nim.equals("")){ 
       Toast.makeText(getApplicationContext(), "Tolong masukan data lengkap!", Toast.LENGTH_SHORT).show(); 
      }else if(nama.equals("")){ 
       Toast.makeText(getApplicationContext(), "Tolong masukan data lengkap!", Toast.LENGTH_SHORT).show(); 
      }else if(jurusan.equals("")){ 
       Toast.makeText(getApplicationContext(), "Tolong masukan data lengkap!", Toast.LENGTH_SHORT).show(); 
      }else if(no_telp.equals("")){ 
       Toast.makeText(getApplicationContext(), "Tolong masukan data lengkap!", Toast.LENGTH_SHORT).show(); 
      }else if(umur.equals("")){ 
       Toast.makeText(getApplicationContext(), "Tolong masukan data lengkap!", Toast.LENGTH_SHORT).show(); 
      }else { 
       dbHelper = new PemainDbAdapter(Input_Pemain.this); 
       dbHelper.createPemain(nim, nama, jurusan, no_telp, umur); 
      } 
     } 
    }); 
} 

私を助けてください!

+1

アプリケーションを強制終了し、スタックトレースを共有してください! – 0xDEADC0DE

+0

どのように?申し訳ありませんi初心者はここ@ 0xDEADC0DE –

+0

AndroidスタジオまたはEclipseのどこかに、すべてが記録されているlogcatというウィンドウ/パネルがあります。あなたのアプリが強制終了されると、スタックトレースが記録されます。コピーしてここに貼り付けてください – 0xDEADC0DE

答えて

1

createPemain()で1番目のパラメータのnullのみを渡します。

RIdフィールドが挿入クエリに見つかりません。 試してみてください....

それはあなたを助けます。

関連する問題