data not going into database and not coming from database in android

二次信任 提交于 2019-12-12 03:38:50

问题


This is written by me. There is something wrong with this code. When I debugged the code it is terminating in this file.So help is something which I need badly. data is not going into the database, I'm not able to retrieve data from database. Don't know whether the database, table create or not.

package com.Prasad.formdetails;

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

public class DatabaseHandler extends SQLiteOpenHelper {
  //database version
  private static final int Database_Version =1;
  //database name
  private static final String Database_Name = "persondetails";
  //table name
  private static final String Table_Name="persondetails";
  //table column names
  private static final String key_personName="Name";
  private static final String key_mailId="mailID";
  private static final String key_phone="Phone";
  @Override
  public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String CREATE_DETAILS_TABLLE="CREATE TABLE" + 
    Table_Name + "(" + key_personName + "text" + key_mailId + "text primary key" + key_phone + "text" + ")";
    db.execSQL(CREATE_DETAILS_TABLLE);
  }
  //constructor as no default constructor in super
    public DatabaseHandler(Context context){
        super(context,Database_Name, null, Database_Version);
    }


    @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    //delete the existing table while updating
    db.execSQL("drop table if exists" + Table_Name);
    //again create table
    onCreate(db);
  }

  void addPerson(Person person) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(key_personName, person.getName()); // Person Name
    values.put(key_mailId, person.getId()); // Person mail id
    values.put(key_phone, person.getPhone()); // Person Phone

    // Inserting Row
    db.insert(Table_Name, null, values);
    db.close(); // Closing database connection
  }

    Person getPerson(String id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor=db.query(Table_Name,new String[] {key_personName,key_mailId,key_phone}, key_mailId + "=?",
            new String[]{id},null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    Person person = new Person(cursor.getString(0),
            cursor.getString(1), cursor.getString(2));
    // return contact
    return person;
}
}

If logcat can help you in anyway. watch this

08-29 00:12:48.115: E/SQLiteLog(32608): (1) near "TABLEpersondetails": syntax error
08-29 00:12:48.119: D/AndroidRuntime(32608): Shutting down VM
08-29 00:12:48.135: E/AndroidRuntime(32608): FATAL EXCEPTION: main
08-29 00:12:48.135: E/AndroidRuntime(32608): Process: com.Prasad.formdetails, PID: 32608
08-29 00:12:48.135: E/AndroidRuntime(32608): android.database.sqlite.SQLiteException: near "TABLEpersondetails": syntax error (code 1): , while compiling: CREATE TABLEpersondetails(NametextmailIDtext primary keyPhonetext)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at  android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at com.Prasad.formdetails.DatabaseHandler.onCreate(DatabaseHandler.java:25)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at com.Prasad.formdetails.DatabaseHandler.addPerson(DatabaseHandler.java:43)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at com.Prasad.formdetails.MainActivity2$1.onClick(MainActivity2.java:32)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.view.View.performClick(View.java:4761)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.view.View$PerformClick.run(View.java:19767)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.os.Handler.handleCallback(Handler.java:739)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.os.Handler.dispatchMessage(Handler.java:95)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.os.Looper.loop(Looper.java:135)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at android.app.ActivityThread.main(ActivityThread.java:5312)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at java.lang.reflect.Method.invoke(Native Method)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at java.lang.reflect.Method.invoke(Method.java:372)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
08-29 00:12:48.135: E/AndroidRuntime(32608):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

回答1:


CREATE TABLEpersondetails

you missed a space after "TABLE"

change the line

String CREATE_DETAILS_TABLLE="CREATE TABLE" + 

adding space, like below

String CREATE_DETAILS_TABLLE="CREATE TABLE " + 


来源:https://stackoverflow.com/questions/32277710/data-not-going-into-database-and-not-coming-from-database-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!