0

SQLite Create table Query MainActivity

sqLiteHelper.queryData("CREATE TABLE IF NOT EXISTS DETAILS(Id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, phone VARCHAR, location VARCHAR, remarks VARCHAR)");

insert data query SQLiteHelper.class

  public void insertData(String name, String phone, String location,String remarks)
{
    SQLiteDatabase database = getWritableDatabase();
    String sql = "INSERT INTO DETAILS VALUES (NULL,?, ?, ?, ?)";
    SQLiteStatement statement = database.compileStatement(sql);
    statement.clearBindings();

    statement.bindString(1, name);
    statement.bindString(2, phone);
    statement.bindString(3, location);
    statement.bindString(4, remarks);

    statement.executeInsert();
}

OnClick Save MainActivity.class

 mSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

           try {
                sqLiteHelper.insertData(
                        eName.getText().toString().trim(),
                        ePhonenumber.getText().toString().trim(),
                        eLocation.getText().toString().trim(),
                        eRemarks.getText().toString().trim());

                Toast.makeText(getApplicationContext(), "Added Successfully", Toast.LENGTH_SHORT).show();
                eName.setText("");
                ePhonenumber.setText("");
                eLocation.setText("");
                eRemarks.setText("");


                }
                catch(Exception e){
                    e.printStackTrace();
                }


            }


    });

Error while inserting data into table: It was working fine previously when i didn't added the remarks column

E/SQLiteLog: (1) table DETAILS has 4 columns but 5 values were supplied
W/System.err: android.database.sqlite.SQLiteException: table DETAILS has 4  columns but 5 values were supplied (code 1): , while compiling: INSERT INTO DETAILS VALUES (NULL,?, ?, ?, ?)

W/System.err:     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
W/System.err:     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
W/System.err:     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1070)
W/System.err:     at com.example.alpha.SQLiteHelper.insertData(SQLiteHelper.java:28)
W/System.err:     at com.example.alpha.MainActivity$1.onClick(MainActivity.java:61)
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Sasank
  • 3
  • 6

1 Answers1

0

Edit Insert query.

public void insertData(String name, String phone, String location,String remarks)
{
    SQLiteDatabase database = getWritableDatabase();
    String sql = "INSERT INTO DETAILS VALUES (?, ?, ?, ?)";
    SQLiteStatement statement = database.compileStatement(sql);
    statement.clearBindings();

    statement.bindString(1, name);
    statement.bindString(2, phone);
    statement.bindString(3, location);
    statement.bindString(4, remarks);

    statement.executeInsert();
}
Mitesh Vanaliya
  • 2,491
  • 24
  • 39
  • If i remove Null how the id will be added..and still tried this i am getting E/SQLiteLog: (20) statement aborts at 5: [INSERT INTO DETAILS VALUES (?, ?, ?, ?)] datatype mismatch – Sasank Nov 13 '17 at 11:03
  • INSERT INTO DETAILS (name,phone,location,remarks) VALUES (?, ?, ?, ?) try this . – Mitesh Vanaliya Nov 13 '17 at 11:14