2016-03-29 4 views
0

zu erstellen Ich bin neu bei Android. Ich versuche, Tabelle zu erstellen, einen Datensatz hinzuzufügen und den Datensatz zu überprüfen, der unten angegeben wird. Das Problem besteht darin, dass die Tabelle mit dem Namen TABLE_LOGIN erstellt wird und dass die Überprüfung für die Tabelle funktioniert. Die zweite Tabelle TABLE_REG wird jedoch nicht wie in der Protokolldatei angegeben erstellt.Versuchen, Tabellen mit SQLiteOpenHelper

Database Helper:

package com.intraharyana.tamber.intraharyana; 

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

public class DatabaseHelper extends SQLiteOpenHelper{ 
public static final String DATABASE_NAME="NIC.db"; 
public static final String TABLE_LOGIN ="employee_login"; 
public static final String LOGIN_COL_1 ="USER_ID"; 
public static final String LOGIN_COL_2 ="PASSWORD"; 
public static final String TABLE_REG="employee_info"; 
public static final String REG_COL_1="SALARY_ACC"; 
public static final String REG_COL_2="DOB"; 
public static final String REG_COL_3="DOJ"; 

public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, 1); 
    SQLiteDatabase db=this.getWritableDatabase(); 
    ContentValues contentValues= new ContentValues(); 
    contentValues.put(LOGIN_COL_1, "admin"); 
    contentValues.put(LOGIN_COL_2, "admin"); 
    db.insert(TABLE_LOGIN, null, contentValues); 
    ContentValues contentValues1= new ContentValues(); 
    contentValues1.put(REG_COL_1, "1234567890"); 
    contentValues1.put(REG_COL_2, "28/01/1994"); 
    contentValues1.put(REG_COL_3, "01/01/2016"); 
    db.insert(TABLE_REG, null, contentValues1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table " + TABLE_LOGIN + "(USER_ID VARCHAR PRIMARY  KEY,PASSWORD TEXT)"); 
    db.execSQL("create table " + TABLE_REG + "(SALARY_ACC VARCHAR PRIMARY    KEY,DOB VARCHAR, DOJ VARCHAR)"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("drop table if exists "+ TABLE_LOGIN); 
    db.execSQL("drop table if exists "+ TABLE_REG); 
    onCreate(db); 

} 
public Cursor checkLogin(){ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    Cursor cursor=db.rawQuery("select * from "+ TABLE_LOGIN,null); 
    return cursor; 

} 
public Cursor checknewReg(){ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    Cursor cursor1= db.rawQuery("select * from "+ TABLE_REG,null); 
    return cursor1; 
} 

}` 

NewRegister Klasse

package com.intraharyana.tamber.intraharyana; 

import android.app.DatePickerDialog; 
import android.content.Intent; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.app.Activity; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.EditText; 
import android.widget.ImageButton; 
import android.widget.Spinner; 
import android.widget.Toast; 

import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Locale; 

    public class NewRegister extends Activity { 
DatabaseHelper mydb; 
EditText emp_DOB,emp_DOJ,salaryacc; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.newregister); 
emp_DOB=(EditText)findViewById(R.id.emp_DOB); 
    emp_DOJ=(EditText)findViewById(R.id.emp_DOJ); 
    salaryacc=(EditText)findViewById(R.id.salaryacc); 

    mydb=new DatabaseHelper(this); 


} 
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
public void checkReg(View view) { 

    String salary=salaryacc.getText().toString(); 
    NewRegister ng= new NewRegister(); 

    Cursor c = mydb.checknewReg(); 
    int x=0; 
    if (c.moveToFirst()) { 
     do { 
      if (c.getString(0).equals(salaryacc.getText().toString().toLowerCase()) 
        && c.getString(1).equals(emp_DOB.getText().toString()) 
        && c.getString(2).equals(emp_DOJ.getText().toString())) { 

       Intent i = new Intent(this, NewRegister2.class); 
       startActivity(i); 
       finish(); 
       x=1; 
      } 

     } 
     while (c.moveToNext()); 
     if(x==0) 
      Toast.makeText(this,"Incorrect Credentials...Please Check again",Toast.LENGTH_LONG).show(); 
    } 
} 
@Override 
public void onBackPressed(){ 
    Intent intent=new Intent(this,MainActivity.class); 
    startActivity(intent); 
    finish(); 
} 
} 

Logcat

03-29 23:48:19.037 21421-21421/com.intraharyana.tamber.intraharyana E/AndroidRuntime: FATAL EXCEPTION: main 
                         Process: com.intraharyana.tamber.intraharyana, PID: 21421 
                         java.lang.IllegalStateException: Could not execute method of the activity 
                          at android.view.View$1.onClick(View.java:4240) 
                          at android.view.View.performClick(View.java:5184) 
                          at android.view.View$PerformClick.run(View.java:20910) 
                          at android.os.Handler.handleCallback(Handler.java:739) 
                          at android.os.Handler.dispatchMessage(Handler.java:95) 
                          at android.os.Looper.loop(Looper.java:145) 
                          at android.app.ActivityThread.main(ActivityThread.java:5951) 
                          at java.lang.reflect.Method.invoke(Native Method) 
                          at java.lang.reflect.Method.invoke(Method.java:372) 
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 
                         Caused by: java.lang.reflect.InvocationTargetException 
                          at java.lang.reflect.Method.invoke(Native Method) 
                          at java.lang.reflect.Method.invoke(Method.java:372) 
                          at android.view.View$1.onClick(View.java:4235) 
                          at android.view.View.performClick(View.java:5184)  
                          at android.view.View$PerformClick.run(View.java:20910)  
                          at android.os.Handler.handleCallback(Handler.java:739)  
                          at android.os.Handler.dispatchMessage(Handler.java:95)  
                          at android.os.Looper.loop(Looper.java:145)  
                          at android.app.ActivityThread.main(ActivityThread.java:5951)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at java.lang.reflect.Method.invoke(Method.java:372)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)  
                         Caused by: android.database.sqlite.SQLiteException: no such table: employee_info (code 1): , while compiling: select * from employee_info 
                          at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
                          at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093) 
                          at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:670) 
                          at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
                          at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59) 
                          at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
                          at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 
                          at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1440) 
                          at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1379) 
                          at com.intraharyana.tamber.intraharyana.DatabaseHelper.checknewReg(DatabaseHelper.java:54) 
                          at com.intraharyana.tamber.intraharyana.NewRegister.checkReg(NewRegister.java:151) 
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at java.lang.reflect.Method.invoke(Method.java:372)  
                          at android.view.View$1.onClick(View.java:4235)  
                          at android.view.View.performClick(View.java:5184)  
                          at android.view.View$PerformClick.run(View.java:20910)  
                          at android.os.Handler.handleCallback(Handler.java:739)  
                          at android.os.Handler.dispatchMessage(Handler.java:95)  
                          at android.os.Looper.loop(Looper.java:145)  
                          at android.app.ActivityThread.main(ActivityThread.java:5951)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at java.lang.reflect.Method.invoke(Method.java:372)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)  
+0

Dank Deinstallation und Neuinstallation funktioniert @BobMalooga –

+0

brauchen einen Vorschlag @BobMalooga. Ich möchte meine App mit Webservices verbinden, die Sie teilen können, von wo aus ich die grundlegenden Funktionen kennen kann? –

+0

Google, Google und Google wieder. Ich denke, es gibt eine halbe Milliarde Ergebnisse ... –

Antwort

0

Wild Guess: Sie haben wahrscheinlich die zweite Tabelle nach einem vorherigen Lauf hinzugefügt.
Deinstallieren Sie Ihre App und führen Sie es erneut

Verwandte Themen