Android - Error Table has no column named __ (code 1) while compiling: INSERT INTO () Values (?????)

 
Vista:

Error Table has no column named __ (code 1) while compiling: INSERT INTO () Values (?????)

Publicado por Jenn (1 intervención) el 16/10/2019 20:04:43
Hola que tal quiero saber si alguien me puede ayudar en mi programa, no reconoce una columna y no inserta ningun dato en la base de datos, cuento con las clases

ConocidoColumns
ConocidosDao
ConocidosOpenHelper
ListadoActivity
ScrollingActivity

tengo esto en ConocidosOpenHelper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
 
import java.text.MessageFormat;
 
public class ConocidosOpenHelper extends SQLiteOpenHelper {
	private static final int VERSION_BD = 1;
	private static final String NOMBRE_BD = "BDSencilla";
 
	public ConocidosOpenHelper(Context contexto) {
		super(contexto, NOMBRE_BD, null, VERSION_BD);
	}
 
	@Override
	public void onCreate(SQLiteDatabase bd) {
		/*
		 * Para que algunas clases de Android funcionen, la llave primaria debe
		 * llamarse _id.
		 */
		final String consulta = MessageFormat
				.format("CREATE TABLE {0}({1} INTEGER AUTO_INCREMENT PRIMARY KEY, "
						+ "{2} TEXT NOT NULL CHECK(length({2}) > 0), "
						+ "{3} TEXT NOT NULL CHECK(length({3}) > 0), "
								+ "{4} TEXT NOT NULL CHECK(length({4})> 0),"
								+ "{5} TEXT NOT NULL CHECK(legth ({5})> 0)",
				/* 0 */ConocidoColumns.TABLA, /* 1 */BaseColumns._ID,
				/* 2 */ConocidoColumns.BOLETA, /* 3 */ConocidoColumns.NOMBRE,
				/*4*/ ConocidoColumns.TELEFONO, /*5*/ ConocidoColumns.FECHA);
		bd.execSQL(consulta);
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase bd, int versionAnterior,
                          int nuevaVersion) {
	}
}




En Scrolling Activity tengo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteConstraintException;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
 
public class ScrollingActivity extends AppCompatActivity {
    private ConocidosDao dao;
    private EditText txtBoleta;
    private EditText txtNombre;
    private EditText txtTelefono;
    private EditText txtFecha;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scrolling);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        dao = new ConocidosDao(this);
        txtBoleta = (EditText) findViewById(R.id.boleta);
        txtNombre = (EditText) findViewById(R.id.nombre);
        txtTelefono = (EditText) findViewById(R.id.telefono);
        txtFecha = (EditText) findViewById(R.id.fecha);
 
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listado();
                Snackbar.make(view, "Conexión A La Base De Datos", Snackbar.LENGTH_LONG)
                        .setAction("Base De Datos", null).show();
 
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_scrolling, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        switch (item.getItemId()) {
            case R.id.action_agregar:
                agrega();
                return true; // Indica que se ejecuta una acción
            case R.id.action_listado:
                listado();
                return true;
            default:
                // Indica que no se procesa la opción.
                return super.onOptionsItemSelected(item);
        }
    }
    public void agrega() {
        try {
            final ContentValues modelo = new ContentValues();
            final String boleta = txtBoleta.getText().toString().trim();
            final String nombre = txtNombre.getText().toString().trim();
            final String telefono = txtTelefono.getText().toString().trim();
            final String fecha = txtFecha.getText().toString().trim();
            modelo.put(ConocidoColumns.BOLETA, boleta);
            modelo.put(ConocidoColumns.NOMBRE, nombre);
            modelo.put(ConocidoColumns.TELEFONO, telefono);
            modelo.put(ConocidoColumns.FECHA, fecha);
            dao.agrega(modelo);
            listado();
        } catch (SQLiteConstraintException e)
        {
            Toast.makeText(this, R.string.datos_incorrectos, Toast.LENGTH_SHORT)
                    .show();
        } catch (Exception e) {
            Log.e(getClass().getName(), "Error al agregar", e);
            Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_SHORT)
                    .show();
        }
    }
 
    public void listado() {
        startActivity(new Intent(this, ListadoActivity.class));
    }
 
}



En ConocidosDao

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
 
public class ConocidosDao {
	private final SQLiteDatabase db;
 
	public ConocidosDao(Context contexto) {
		final ConocidosOpenHelper openHelper = new ConocidosOpenHelper(contexto);
		db = openHelper.getWritableDatabase();
	}
 
	public void agrega(ContentValues modelo){
 
		db.insertOrThrow(ConocidoColumns.TABLA, null, modelo);
	}
 
	private static final String[] COLUMNAS_QUE_DEVUELVE = {
			ConocidoColumns._ID, ConocidoColumns.BOLETA,
			ConocidoColumns.NOMBRE,
			ConocidoColumns.TELEFONO,
			ConocidoColumns.FECHA};
 
	public Cursor buscaRegistros() {
		return db.query(ConocidoColumns.TABLA, // Tabla de la consulta.
				COLUMNAS_QUE_DEVUELVE,
				// Clausula WHERE con simbolos de interrogación como parámetros.
				null,
				// valores de los parámetros de la clausula WHERE.
				null,
				// clausula GROUP BY
				null,
				// clausula HAVING
				null,
				// clausula ORDER BY
				ConocidoColumns.NOMBRE);
 
	}
}


En ConocidoColumns

1
2
3
4
5
6
7
8
9
import android.provider.BaseColumns;
 
class ConocidoColumns implements BaseColumns {
	static final String TABLA = "Conocido";
	static final String BOLETA = "boleta";
	static final String NOMBRE = "nombre";
	static final String TELEFONO = "telefono";
	static final String FECHA= "fecha";
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder