J'ai 4 bouton sur MainActvity. Lorsque je clique sur Ajouter un bouton, la classe AddData s'ouvre. Ici je dois insérer le nom, le numéro de téléphone et l'email. Lorsque je clique sur
enregistrer le bouton de la classe AddData puis Toast est affiché avec le message "Les données ne sont pas insérées."Pourquoi les données ne sont pas insérées dans SQLiteDatabase
Désolé pour ma grammaire.
MainActivity.java
package csitmnr.sqlitedatabaseexample;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button search,add,delete,update;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
search = (Button) findViewById(R.id.btnSearch);
add = (Button) findViewById(R.id.btnAdd);
delete = (Button) findViewById(R.id.btnDelete);
update = (Button) findViewById(R.id.btnUpdate);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,AddData.class);
startActivity(intent);
}
});
}
}
DBHelper.java
package csitmnr.sqlitedatabaseexample;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "contacts.db";
private static final String TABLE_NAME = "contacts";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE "+TABLE_NAME+"(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,PHONE_NO TEXT,EMAIL TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXIST "+TABLE_NAME);
onCreate(sqLiteDatabase);
}
public boolean insertData(String name,String phone_no,String email){
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("NAME",name);
contentValues.put("PHONE_NO",phone_no);
contentValues.put("EMAIL",email);
long result = sqLiteDatabase.insert(TABLE_NAME,null,contentValues);
if (result == -1)
return false;
else
return true;
}
}
AddData.java
package csitmnr.sqlitedatabaseexample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddData extends AppCompatActivity {
EditText name , phone, email;
Button save;
private DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_data);
dbHelper = new DBHelper(this);
name = (EditText) findViewById(R.id.etName);
phone = (EditText) findViewById(R.id.etPhone);
email = (EditText) findViewById(R.id.etEmail);
save = (Button) findViewById(R.id.saveButton);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean result = dbHelper.insertData(name.getText().toString(),phone.getText().toString(),email.getText().toString());
if (result){
Toast.makeText(AddData.this, "Data is inserted", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(AddData.this, "Data is not inserted", Toast.LENGTH_SHORT).show();
}
}
});
}
}
que diriez-vous en utilisant 'insertOrThrow' si vous voyez ce que l'erreur est https://developer.android.com/reference/an droid/base de données/sqlite/SQLiteDatabase.html # insertOrThrow (java.lang.String, java.lang.String, android.content.ContentValues) –
Désolé, ce n'est pas un travail. –
que voulez-vous dire? –