0
Le dataHelper est la
package estm.sn.ecommerce.base;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelperUser extends SQLiteOpenHelper {
static int version=1;
public static final String DATABASE_NAME = "riitashop.db";
SQLiteDatabase db = this.getWritableDatabase();
public DatabaseHelperUser( Context context) {
super(context, DATABASE_NAME, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DatabaseUser.tableUserQueries.SQL_CREATE_USER);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DatabaseUser.tableUserQueries.SQL_DELETE_TABLE);
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
super.onDowngrade(db, oldVersion, newVersion);
}
//insertion dans la base
public boolean insertUser(String login, String nom, String email ,String password, String uppassword){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DatabaseUser.TableUser.COLUMN_TABLE_LOGIN,login);
values.put(DatabaseUser.TableUser.COLUMN_TABLE_NOM,nom);
values.put(DatabaseUser.TableUser.COLUMN_TABLE_EMAIL,email);
values.put(DatabaseUser.TableUser.COLUMN_TABLE_MDP,password);
values.put(DatabaseUser.TableUser.COLUMN_TABLE_CONF,uppassword);
long result = db.insert(DatabaseUser.TableUser.TABLE_NAME,null,values);
if (result==-1)
return false;
else
return true;
}
// verifier si le login existe
public Boolean chklogin(String login){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from user where login= ? ", new String[]{login});
if (cursor.getCount()>0)
{ return false;
}
else
return true;
}
// verifier le login & mdp
public Boolean loginMdp(String login, String password){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from user where login = ? and mdp = ? ",new String[]{login,password});
if (cursor.getCount()>0) return true;
else return false;
}
}
La Partie Registration
package estm.sn.ecommerce;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.net.DatagramSocket;
import butterknife.ButterKnife;
import estm.sn.ecommerce.base.DatabaseHelperUser;
public class Registrer extends AppCompatActivity {
TextView compte;
EditText nom,email,login,password,confpassword;
Button registrer;
DatabaseHelperUser databaseHelperUser;
private static final String TAG = "SignupActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registrer);
ButterKnife.inject(this);
nom=(EditText)findViewById(R.id.input_nom);
email=(EditText)findViewById(R.id.input_email);
login=(EditText)findViewById(R.id.input_login);
password=(EditText)findViewById(R.id.input_password);
confpassword=(EditText)findViewById(R.id.input_reEnterPassword);
compte=(TextView)findViewById(R.id.link_login);
registrer=(Button)findViewById(R.id.btn_signup);
registrer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signup();
}
});
compte.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Finish the registration screen and return to the Login activity
Intent intent = new Intent(getApplicationContext(),Login.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
});
}
public void signup(){
Log.d(TAG, "Registrer");
if (!validate()) {
onSignupFailed();
return;
}
registrer.setEnabled(false);
final ProgressDialog progressDialog = new ProgressDialog(Registrer.this,
R.style.AppTheme_Dark_Dialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Création de compte...");
progressDialog.show();
/** final String nomR = nom.getText().toString();
final String emailR = email.getText().toString();
final String loginR = login.getText().toString();
final String passwordR = password.getText().toString();
final String confpass = confpassword.getText().toString();
**/
// TODO: Implement your own signup logic here.
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
// On complete call either onSignupSuccess or onSignupFailed
// depending on success
onSignupSuccess();
// onSignupFailed();
progressDialog.dismiss();
}
}, 3000);
}
// registration réussie
public void onSignupSuccess(){
registrer.setEnabled(true);
setResult(RESULT_OK, null);
finish();
}
// registration échouée
public void onSignupFailed(){
Toast.makeText(getBaseContext(), "Registration echoué", Toast.LENGTH_LONG).show();
registrer.setEnabled(true);
}
//validation
public boolean validate(){
boolean valid = true;
String nomR = nom.getText().toString();
String emailR = email.getText().toString();
String loginR = login.getText().toString();
String passwordR = password.getText().toString();
String confpass = confpassword.getText().toString();
Log.d("nom", nomR);
Log.d("login", loginR);
if (passwordR.isEmpty() || passwordR.length() < 3) {
password.setError("at least 3 characters");
valid = false;
} else {
password.setError(null);
}
if (loginR.isEmpty()) {
login.setError("Renseignez le login");
valid = false;
} else {
login.setError(null);
}
if (nomR.isEmpty()) {
nom.setError("Renseignez le nom");
valid = false;
} else {
nom.setError(null);
}
if (emailR.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(emailR).matches()) {
email.setError("Renseignez le mail");
valid = false;
} else {
email.setError(null);
}
if (passwordR.isEmpty() || passwordR.length() < 4 || passwordR.length() > 10) {
password.setError("Le mot de passe doit etre compris entre 4 et 10 caractéres");
valid = false;
} else {
password.setError(null);
}
if (confpass.isEmpty() || confpass.length() < 4 || confpass.length() > 10 ) {
confpassword.setError("Les mots de passes ne sont pas identiques");
valid = false;
} else {
confpassword.setError(null);
}
if(confpass.equals(passwordR)) {
databaseHelperUser = new DatabaseHelperUser(this);
Boolean chklogin=databaseHelperUser.chklogin(loginR);
if (chklogin==true){
Boolean insert = databaseHelperUser.insertUser(loginR,nomR,emailR,passwordR,confpass);
if (insert==true){
Toast.makeText(Registrer.this, "Registration réussie ", Toast.LENGTH_SHORT).show();
}
}
}
return valid;
}
}
More to Chaque fois que je fais la raison il y a Cette Erreur qui revient toujours
D/nom: codou D/login: codoufall E/Sqlitelog: (1) no such column: login D/Androidruntime: Shutting down VM E/Androidruntime: FATAL EXCEPTION: main Process: estm.sn.Ecommerce, PID: 12764 android.database.sqlite.Sqliteexception: no such column: login (code 1): while compiling: select * from user Where login= ? 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.(Sqliteprogram.java:58) at android.database.sqlite.SQLiteQuery.(Sqlitequery.java:37) at android.database.sqlite.SQLiteDirectCursorDriver.query(Sqlitedirectcursordriver.java:44) at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(Sqlitedatabase.java:1316) at android.database.sqlite.SQLiteDatabase.rawQuery(Sqlitedatabase.java:1255) at estm.sn.Ecommerce.base.Databasehelperuser.chklogin(Databasehelperuser.java:59) at estm.sn.Ecommerce.Registrer.validate(Registrer.java:178) at estm.sn.Ecommerce.Registrer.signup(Registrer.java:69) at estm.sn.Ecommerce.Registrer$1.onClick(Registrer.java:47) at android.view.View.performClick(View.java:4780) at android.view.View$Performclick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.Activitythread.main(Activitythread.java:5254) 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:903) at com.android.Internal.os.Zygoteinit.main(Zygoteinit.java:698)
Avez-vous créé la colonne "login" dans le Tableau?
– adventistaam
Quelles informations Cette variable possède-t-Elle:
DatabaseUser.tableUserQueries.SQL_CREATE_USER
?– adventistaam
public static final String SQL_CREATE_USER =
 "CREATE TABLE IF NOT EXISTS "+
 TableUser.TABLE_NAME+" ("+
 TableUser.COLUMN_TABLE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"+TableUser.COLUMN_TABLE_LOGIN + "TEXT, "+ TableUser.COLUMN_TABLE_NOM + " TEXT, "+
TableUser.COLUMN_TABLE_EMAIL +" TEXT, "+
TableUser.COLUMN_TABLE_CONF +" TEXT,"+
 TableUser.COLUMN_TABLE_MDP +" TEXT )";
public static final String SQL_DELETE_TABLE =DROP TABLE IF EXIST "+TableUser.TABLE_NAME;
– Ndeye codou Mboup
Il ne trouve pas la colonne
login
– adventistaam