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
En Scrolling Activity tengo
En ConocidosDao
En ConocidoColumns
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


0