Do not insert SQlite data

0

What kind of colleagues do I try to insert from an Activity but it gives me these errors? What will it be?

public class HelperSQLite extends SQLiteOpenHelper {

public String TABLACLIENTE = "CREATE TABLE Cliente(RFC TEXT PRIMARY KEY,  Nombre TEXT, Direccion TEXT, Telefono TEXT, Ciudad TEXT, Estado TEXT)";

public HelperSQLite(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
    super(context,name,factory,version);
}

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

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

public class MainActivityClientes extends AppCompatActivity {

EditText Rfc;
EditText nom;
EditText direc;
EditText tel;
EditText ciu;
EditText esta;
Button btnRegistrar;

@Override
protected void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(R.layout.activity_main_clientes);

    Rfc = (EditText)findViewById(R.id.edtRfc);
    nom = (EditText)findViewById(R.id.edtNombre);
    direc = (EditText)findViewById(R.id.edtDireccion);
    tel = (EditText)findViewById(R.id.edtTel);
    ciu = (EditText)findViewById(R.id.edtCIudad);
    esta = (EditText)findViewById(R.id.edtEstado);
    btnRegistrar = (Button)findViewById(R.id.btn_registrar);
}

public void Agregar(View v){
    if(ComprobarCampos()){
        String rfc,nombre,direccion,telefono,ciudad,estado;
        rfc = Rfc.getText().toString();
        nombre = nom.getText().toString();
        direccion  = direc.getText().toString();
        telefono = tel.getText().toString();
        ciudad = ciu.getText().toString();
        estado = esta.getText().toString();

        HelperSQLite bh = new HelperSQLite(MainActivityClientes.this,"Cliente",null,1);
        if(bh != null){
            SQLiteDatabase db = bh.getWritableDatabase();
            ContentValues con = new ContentValues();
            con.put("RFC",rfc);
            con.put("Nombre",nombre);
            con.put("Direccion",direccion);
            con.put("Telefono",telefono);
            con.put("Ciudad",ciudad);
            con.put("Estado",estado);

            long insertado = db.insert("Cliente",null, con);

            if(insertado > 0 ){
                Toast.makeText(MainActivityClientes.this,"Datos guardados exitosamente", Toast.LENGTH_SHORT).show();

            }else{
                Toast.makeText(MainActivityClientes.this,"No se guardaron los datos", Toast.LENGTH_SHORT).show();
            }
        }
    }else {
        Toast.makeText(MainActivityClientes.this,"Existen campos vacios", Toast.LENGTH_SHORT).show();
    }
}

public boolean ComprobarCampos(){
    if(Rfc.getText().toString().isEmpty() || nom.getText().toString().isEmpty() || direc.getText().toString().isEmpty() || tel.getText().toString().isEmpty() || ciu.getText().toString().isEmpty() || esta.getText().toString().isEmpty()){
        return false;
    }else{
        return true;
    }

} Errors that it gives me:

    
asked by Locus0509 22.05.2018 в 22:52
source

1 answer

0

The error you show:

  

Datatype mismatch (code 20)

is because you are inserting an incorrect type in some field. Apparently your structure

 "CREATE TABLE Cliente(RFC TEXT PRIMARY KEY,  Nombre TEXT, Direccion TEXT, Telefono TEXT, Ciudad TEXT, Estado TEXT)";

and the data you insert is correct:

SQLiteDatabase db = bh.getWritableDatabase();
        ContentValues con = new ContentValues();
        con.put("RFC",rfc);
        con.put("Nombre",nombre);
        con.put("Direccion",direccion);
        con.put("Telefono",telefono);
        con.put("Ciudad",ciudad);
        con.put("Estado",estado);

        long insertado = db.insert("Cliente",null, con);

I suggest you delete the application and upload it again to really apply this structure of the BD.

    
answered by 22.05.2018 / 23:29
source