-6

This is the error:

07-14 16:13:53.385 19921-19921/studentzone.studentzone E/AndroidRuntime: FATAL EXCEPTION: main
Process: studentzone.studentzone, PID: 19921
java.lang.IllegalStateException: Could not execute method for android:onClick
   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
   at android.view.View.performClick(View.java:4444)
   at android.view.View$PerformClick.run(View.java:18457)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5113)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
   at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
   at android.view.View.performClick(View.java:4444) 
   at android.view.View$PerformClick.run(View.java:18457) 
   at android.os.Handler.handleCallback(Handler.java:733) 
   at android.os.Handler.dispatchMessage(Handler.java:95) 
   at android.os.Looper.loop(Looper.java:136) 
   at android.app.ActivityThread.main(ActivityThread.java:5113) 
   at java.lang.reflect.Method.invokeNative(Native Method) 
   at java.lang.reflect.Method.invoke(Method.java:515) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
   at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.database.sqlite.SQLiteException: near "tableuser": syntax error (code 1): , while compiling: create tableuser(abctextemailemailtextemail12345text)
   at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
   at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
   at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
   at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
   at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
   at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
   at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)
   at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
   at studentzone.studentzone.DataBaseHelper.onCreate(DataBaseHelper.java:30)
   at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
   at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
   at studentzone.studentzone.DataBaseHelper.insertData(DataBaseHelper.java:43)
   at studentzone.studentzone.SignUp.register(SignUp.java:31)
   at java.lang.reflect.Method.invokeNative(Native Method) 
   at java.lang.reflect.Method.invoke(Method.java:515) 
   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
   at android.view.View.performClick(View.java:4444) 
   at android.view.View$PerformClick.run(View.java:18457) 
   at android.os.Handler.handleCallback(Handler.java:733) 
   at android.os.Handler.dispatchMessage(Handler.java:95) 
   at android.os.Looper.loop(Looper.java:136) 
   at android.app.ActivityThread.main(ActivityThread.java:5113) 
   at java.lang.reflect.Method.invokeNative(Native Method) 
   at java.lang.reflect.Method.invoke(Method.java:515) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
   at dalvik.system.NativeStart.main(Native Method) 

My database class is:

public class DataBaseHelper extends SQLiteOpenHelper {

    public static final String Database_name="studentzone.db";
    public static final String Table_name ="user";
    public static final String Type ="text";
    public static final String comma ="email";
    public static final String Name ="abc";
    public static final String Email ="email";
    public static final String Pass ="12345";
    public static final String sql_create="create table"+Table_name+"("+Name+Type+comma+Email+Type+comma+Pass+Type+")";
    public static final String sql_delete="drop table if exists" + DataBaseHelper.Table_name;

    public DataBaseHelper(Context context) {
        super(context,Database_name, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(sql_create);


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL(sql_delete);
        onCreate(db);
    }

    public Boolean insertData(String name , String email , String password)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Name,name);
        contentValues.put(Email,email);
        contentValues.put(Pass,password);
        long rslt =db.insert(Table_name,null,contentValues);
        if(rslt==-1)
        {
            return false;

        }
            else
        {
            return true;
        }

    }
}

My main class is:

public class SignUp extends AppCompatActivity {

DataBaseHelper Database;

    Button login;

    EditText editName, editEmail,editPassword;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_sign_up);

        login= (Button) findViewById(R.id.button_login);

        editName= (EditText) findViewById(R.id.edit_text_full_name);

        editEmail= (EditText) findViewById(R.id.edit_text_email);

        editPassword= (EditText) findViewById(R.id.edit_text_password);

        Database=new DataBaseHelper(this);

    }
    public void register(View v)
    {
        Toast.makeText(SignUp.this,editName.getText().toString(), Toast.LENGTH_SHORT).show();
        Toast.makeText(SignUp.this,editEmail.getText().toString(), Toast.LENGTH_SHORT).show();
        Toast.makeText(SignUp.this,editPassword.getText().toString(), Toast.LENGTH_SHORT).show();
        boolean isInserted=Database.insertData(editName.getText().toString(),editEmail.getText().toString(),editPassword.getText().toString());
       if(isInserted==true)
        {

            Toast.makeText(getApplicationContext(),"value inserted",Toast.LENGTH_SHORT).show();
        }
        else
        {

            Toast.makeText(getApplicationContext(),"no value inserted",Toast.LENGTH_SHORT).show();
        }

    }

    public void login(View v)

    {
        Intent intent = new Intent(SignUp.this,LoginActivity.class);
        startActivity(intent);


    }
}
Tarun
  • 1
  • 1

2 Answers2

1

There are several problems in your code. Few of them follows:

public static final String sql_create="create table"+Table_name+"("+Name+Type+comma+Email+Type+comma+Pass+Type+")";

You are missing space between constant string and variable: table"+Table_name should be table " + Table_name

Also, the same problem is in this line in your database class:

public static final String sql_delete="drop table if exists" + DataBaseHelper.Table_name;

Should be exists "+Table_name

There is another problem with public static final String comma ="email"; Should be really comma, therefore String comma = ",";

public static final String Table_name ="user";
public static final String Type ="text";
public static final String comma ="email";
public static final String Name ="abc";
public static final String Email ="email";
public static final String Pass ="12345";

This is wrong for create statement as this apparently contains values instead of column names for CREATE TABLE statement. I think your intention here is to have column names in these variables. So it should look like:

public static final String Table_name ="user";
public static final String Type ="type";
public static final String comma =",";
public static final String Name ="name";
public static final String Email ="email";
public static final String Pass ="password";

And last thing is, that the CREATE TABLE statement is missing data types. See CREATE TABLE statement here

holmicz
  • 577
  • 4
  • 15
  • `Caused by: android.database.sqlite.SQLiteException: near "tableuser": syntax error (code 1): , while compiling: create tableuser(abctextemailemailtextemail12345text)` ... and also for the column definition. – Fildor Jul 14 '16 at 11:05
  • I don't think you have made the change correctly. Can you paste the change here? There is another problem with public static final String comma ="email"; Should be really comma, therefore String comma = ","; – holmicz Jul 14 '16 at 11:08
  • ErrorReport: Fail to sendHttpRequestorg.json.JSONException: Value (JSONObject.java:159)at org.json.JSONObject. – Tarun Jul 14 '16 at 11:21
  • *****is this right***** public static final String comma =","; public static final String sql_create=" create table " + Table_name + " ( " + Name + Type + comma + Email + Type + comma + Pass + Type + " ) ";public static final String sql_delete=" drop table if exists " + DataBaseHelper.Table_name; – Tarun 4 mins ago – Tarun Jul 14 '16 at 11:26
0

Change these two line as below

public static final String sql_create="create table "+Table_name+"("+Name+" "+Type+","+Email+" "+Type+","+Pass+" "+Type+")";


public static final String sql_delete="drop table if exists " + DataBaseHelper.Table_name;
chetan
  • 681
  • 4
  • 21
  • ******************This problem occour now******************************** studentzone.studentzone E/AndroidRuntime: FATAL EXCEPTION: main Process: studentzone.studentzone, PID: 31740 java.lang.IllegalStateException: Could not find method reg(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button_register' – Tarun Jul 14 '16 at 11:35
  • Sir please help me out. i have to submit the assignment by tomorrow – Tarun Jul 14 '16 at 11:36
  • I have made all the changes in my application – Tarun Jul 14 '16 at 11:38
  • upload your xml file because the problem is in onClick event. I think in xml file you have written android:onClick=reg but it should be android:onClick=register. – chetan Jul 14 '16 at 12:10
  • Thank you sir your comments solved my issue :) – Tarun Jul 14 '16 at 15:07
  • if you find this answer helpful then pls upvote or accept it. – chetan Jul 15 '16 at 09:24