· 9 years ago · Dec 29, 2016, 02:54 PM
112-29 15:42:41.337 26384-26384/prueba.nuevointento E/SQLiteLog: (1) no such column: fecha
212-29 15:42:41.340 26384-26384/prueba.nuevointento E/AndroidRuntime: FATAL EXCEPTION: main
3 Process: prueba.nuevointento, PID: 26384
4 Theme: themes:{default=overlay:com.saalim.cm.theme.dusk, iconPack:com.saalim.cm.theme.dusk, fontPkg:com.saalim.cm.theme.dusk, com.android.systemui=overlay:com.saalim.cm.theme.dusk, com.android.systemui.navbar=overlay:com.saalim.cm.theme.dusk}
5 java.lang.RuntimeException: Unable to start activity ComponentInfo{prueba.nuevointento/prueba.nuevointento.MyActivity}: android.database.sqlite.SQLiteException: no such column: fecha (code 1): , while compiling: SELECT _id, nombre, fecha FROM miembros
6 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
7 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
8 at android.app.ActivityThread.-wrap11(ActivityThread.java)
9 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
10 at android.os.Handler.dispatchMessage(Handler.java:102)
11 at android.os.Looper.loop(Looper.java:148)
12 at android.app.ActivityThread.main(ActivityThread.java:5461)
13 at java.lang.reflect.Method.invoke(Native Method)
14 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
15 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
16 at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
17 Caused by: android.database.sqlite.SQLiteException: no such column: fecha (code 1): , while compiling: SELECT _id, nombre, fecha FROM miembros
18 at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
19 at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
20 at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
21 at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
22 at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
23 at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
24 at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
25 at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
26 at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1163)
27 at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1034)
28 at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1202)
29 at prueba.nuevointento.SQLControlador.leerDatos(SQLControlador.java:42)
30 at prueba.nuevointento.MyActivity.onCreate(MyActivity.java:43)
31 at android.app.Activity.performCreate(Activity.java:6251)
32 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
33 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
34 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)Â
35 at android.app.ActivityThread.-wrap11(ActivityThread.java)Â
36 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)Â
37 at android.os.Handler.dispatchMessage(Handler.java:102)Â
38 at android.os.Looper.loop(Looper.java:148)Â
39 at android.app.ActivityThread.main(ActivityThread.java:5461)Â
40 at java.lang.reflect.Method.invoke(Native Method)Â
41 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)Â
42 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)Â
43 at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)Â
44
45public class AgregarMiembro extends Activity implements OnClickListener {
46 EditText et;
47 EditText et2;
48 Button btnAgregar, read_bt;
49 SQLControlador dbconeccion;
50
51 @Override
52 protected void onCreate(Bundle savedInstanceState) {
53 // TODO Auto-generated method stub
54 super.onCreate(savedInstanceState);
55 setContentView(R.layout.agregar_miembro);
56 et = (EditText) findViewById(R.id.et_miembro_id);
57 et2 = (EditText) findViewById(R.id.et_miembrofecha_id);
58 btnAgregar = (Button) findViewById(R.id.btnAgregarId);
59
60 dbconeccion = new SQLControlador(this);
61 dbconeccion.abrirBaseDeDatos();
62 btnAgregar.setOnClickListener(this);
63 }
64
65 @Override
66 public void onClick(View v) {
67 // TODO Auto-generated method stub
68 switch (v.getId()) {
69 case R.id.btnAgregarId:
70 String name = et.getText().toString();
71 dbconeccion.insertarDatos(name);
72 Intent main = new Intent(AgregarMiembro.this, MyActivity.class)
73 .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
74 startActivity(main);
75 break;
76
77 default:
78 break;
79 }
80 }
81}
82
83public class DBhelper extends SQLiteOpenHelper {
84
85 // Información de la tabla
86 public static final String TABLE_MEMBER = "miembros";
87 public static final String MIEMBRO_ID = "_id";
88 public static final String MIEMBRO_NOMBRE = "nombre";
89 public static final String MIEMBROFECHA_NOMBRE = "fecha";
90
91 // información del a base de datos
92 static final String DB_NAME = "DBMIEMBRO";
93 static final int DB_VERSION = 1;
94
95 // Información de la base de datos
96 private static final String CREATE_TABLE = "create table "
97 + TABLE_MEMBER + "(" + MIEMBRO_ID
98 + " INTEGER PRIMARY KEY AUTOINCREMENT, "
99 + MIEMBRO_NOMBRE + " TEXT NOT NULL);";
100
101 public DBhelper(Context context) {
102 super(context, DB_NAME, null,DB_VERSION);
103 }
104
105 @Override
106 public void onCreate(SQLiteDatabase db) {
107 db.execSQL(CREATE_TABLE);
108 }
109
110 @Override
111 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
112 // TODO Auto-generated method stub
113 db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER);
114 onCreate(db);
115 }
116}
117
118public class ModificarMiembro extends Activity implements OnClickListener {
119
120 EditText et;
121 Button btnActualizar, btnEliminar;
122
123 long member_id;
124
125 SQLControlador dbcon;
126
127 @Override
128 protected void onCreate(Bundle savedInstanceState) {
129 // TODO Auto-generated method stub
130 super.onCreate(savedInstanceState);
131 setContentView(R.layout.modificar_miembro);
132
133 dbcon = new SQLControlador(this);
134 dbcon.abrirBaseDeDatos();
135
136 et = (EditText) findViewById(R.id.et_miembro_id);
137 btnActualizar = (Button) findViewById(R.id.btnActualizar);
138 btnEliminar = (Button) findViewById(R.id.btnEliminar);
139
140 Intent i = getIntent();
141 String memberID = i.getStringExtra("miembroId");
142 String memberName = i.getStringExtra("miembroNombre");
143
144 member_id = Long.parseLong(memberID);
145
146 et.setText(memberName);
147
148 btnActualizar.setOnClickListener(this);
149 btnEliminar.setOnClickListener(this);
150
151 }
152
153 @Override
154 public void onClick(View v) {
155 // TODO Auto-generated method stub
156 switch (v.getId()) {
157 case R.id.btnActualizar:
158 String memName_upd = et.getText().toString();
159 dbcon.actualizarDatos(member_id, memName_upd);
160 this.returnHome();
161 break;
162
163 case R.id.btnEliminar:
164 dbcon.deleteData(member_id);
165 this.returnHome();
166 break;
167 }
168 }
169
170 public void returnHome() {
171
172 Intent home_intent = new Intent(getApplicationContext(),
173 MyActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
174
175 startActivity(home_intent);
176 }
177
178public class MyActivity extends ActionBarActivity {
179
180 Button btnAgregarMiembro;
181 ListView lista;
182 SQLControlador dbconeccion;
183 TextView tv_miemID, tv_miemNombre, tv_miemfechaNombre;
184
185 @Override
186 protected void onCreate(Bundle savedInstanceState) {
187 super.onCreate(savedInstanceState);
188 setContentView(R.layout.activity_my);
189
190 dbconeccion = new SQLControlador(this);
191 dbconeccion.abrirBaseDeDatos();
192 btnAgregarMiembro = (Button) findViewById(R.id.btnAgregarMiembro);
193 lista = (ListView) findViewById(R.id.listViewMiembros);
194
195 //acción del boton agregar miembro
196 btnAgregarMiembro.setOnClickListener(new OnClickListener() {
197 @Override
198 public void onClick(View v) {
199 Intent iagregar = new Intent(MyActivity.this, AgregarMiembro.class);
200 startActivity(iagregar);
201 }
202 });
203
204 Cursor cursor = dbconeccion.leerDatos();
205
206 String[] from = new String[] {
207 DBhelper.MIEMBRO_ID,
208 DBhelper.MIEMBRO_NOMBRE,
209 DBhelper.MIEMBROFECHA_NOMBRE
210 };
211 int[] to = new int[] {
212 R.id.miembro_id,
213 R.id.miembro_nombre,
214 R.id.miembrofecha_nombre
215 };
216
217 SimpleCursorAdapter adapter = new SimpleCursorAdapter(
218 MyActivity.this, R.layout.formato_fila, cursor, from, to);
219
220 adapter.notifyDataSetChanged();
221 lista.setAdapter(adapter);
222
223 // acción cuando hacemos click en item para poder modificarlo o eliminarlo
224 lista.setOnItemClickListener(new OnItemClickListener() {
225 @Override
226 public void onItemClick(AdapterView parent, View view, int position, long id) {
227
228 tv_miemID = (TextView) view.findViewById(R.id.miembro_id);
229 tv_miemNombre = (TextView) view.findViewById(R.id.miembro_nombre);
230 tv_miemfechaNombre = (TextView) view.findViewById(R.id.miembrofecha_nombre);
231
232 String aux_miembroId = tv_miemID.getText().toString();
233 String aux_miembroNombre = tv_miemNombre.getText().toString();
234 String aux_miembrofechaNombre = tv_miemfechaNombre.getText().toString();
235
236 Intent modify_intent = new Intent(getApplicationContext(), ModificarMiembro.class);
237 modify_intent.putExtra("miembroId", aux_miembroId);
238 modify_intent.putExtra("miembroNombre", aux_miembroNombre);
239 modify_intent.putExtra("miembrofechaNombre", aux_miembroNombre);
240 startActivity(modify_intent);
241 }
242 });
243 } //termina el onCreate
244} //termina clase
245
246public class SQLControlador {
247
248 private DBhelper dbhelper;
249 private Context ourcontext;
250 private SQLiteDatabase database;
251
252 public SQLControlador(Context c) {
253 ourcontext = c;
254 }
255
256 public SQLControlador abrirBaseDeDatos() throws SQLException {
257 dbhelper = new DBhelper(ourcontext);
258 database = dbhelper.getWritableDatabase();
259 return this;
260 }
261
262 public void cerrar() {
263 dbhelper.close();
264 }
265
266 public void insertarDatos(String name) {
267 ContentValues cv = new ContentValues();
268 cv.put(DBhelper.MIEMBRO_NOMBRE, name);
269 cv.put(DBhelper.MIEMBROFECHA_NOMBRE, name);
270 database.insert(DBhelper.TABLE_MEMBER, null, cv);
271 }
272
273 public Cursor leerDatos() {
274 String[] todasLasColumnas = new String[] {
275 DBhelper.MIEMBRO_ID,
276 DBhelper.MIEMBRO_NOMBRE,
277 DBhelper.MIEMBROFECHA_NOMBRE
278 };
279 Cursor c = database.query(DBhelper.TABLE_MEMBER, todasLasColumnas, null,
280 null, null, null, null);
281 if (c != null) {
282 c.moveToFirst();
283 }
284 return c;
285 }
286
287 public int actualizarDatos(long memberID, String memberName) {
288 ContentValues cvActualizar = new ContentValues();
289 cvActualizar.put(DBhelper.MIEMBRO_NOMBRE, memberName);
290 cvActualizar.put(DBhelper.MIEMBROFECHA_NOMBRE, memberName);
291 int i = database.update(DBhelper.TABLE_MEMBER, cvActualizar,
292 DBhelper.MIEMBRO_ID + " = " + memberID, null);
293 return i;
294 }
295
296 public void deleteData(long memberID) {
297 database.delete(DBhelper.TABLE_MEMBER, DBhelper.MIEMBRO_ID + "="
298 + memberID, null);
299 }
300}
301
302<?xml version="1.0" encoding="utf-8"?>
303<LinearLayout
304 xmlns:android="http://schemas.android.com/apk/res/android"
305 android:layout_width="match_parent"
306 android:layout_height="match_parent"
307 android:orientation="vertical"
308 android:padding="10dp">
309
310 <Button
311 android:id="@+id/btnAgregarMiembro"
312 android:layout_width="fill_parent"
313 android:layout_height="wrap_content"
314 android:text="Agregar Cumpleaños" />
315
316 <ListView
317 android:id="@+id/listViewMiembros"
318 android:layout_width="match_parent"
319 android:layout_height="wrap_content"
320 android:dividerHeight="2dp">
321 </ListView>
322
323</LinearLayout>
324
325<?xml version="1.0" encoding="utf-8"?>
326<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
327 android:layout_width="match_parent"
328 android:layout_height="match_parent"
329 android:orientation="vertical"
330 android:padding="20dp" >
331
332 <EditText
333 android:id="@+id/et_miembro_id"
334 android:layout_width="match_parent"
335 android:layout_height="wrap_content"
336 android:ems="10"
337 android:layout_marginTop="40dp"
338 android:hint="Nombre">
339
340 <requestFocus />
341 </EditText>
342
343 <EditText
344 android:id="@+id/et_miembrofecha_id"
345 android:layout_width="match_parent"
346 android:layout_height="wrap_content"
347 android:ems="10"
348 android:layout_marginTop="40dp"
349 android:hint="Fecha">
350 </EditText>
351
352 <Button
353 android:id="@+id/btnAgregarId"
354 android:layout_width="wrap_content"
355 android:layout_height="wrap_content"
356 android:layout_gravity="center"
357 android:text="Agregar" />
358
359</LinearLayout>
360
361<?xml version="1.0" encoding="utf-8"?>
362<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
363 android:layout_width="match_parent"
364 android:layout_height="match_parent"
365 android:orientation="vertical" >
366
367 <TextView
368 android:id="@+id/miembro_id"
369 android:layout_width="fill_parent"
370 android:layout_height="wrap_content"
371 android:textColor="#00000000" />
372
373 <TextView
374 android:id="@+id/miembro_nombre"
375 android:layout_width="fill_parent"
376 android:layout_height="wrap_content"
377 android:padding="15dp"
378 android:textSize="17sp"
379 android:textStyle="bold"
380 android:text="Nombre" />
381
382 <TextView
383 android:id="@+id/miembrofecha_nombre"
384 android:layout_width="fill_parent"
385 android:layout_height="wrap_content"
386 android:padding="15dp"
387 android:textSize="17sp"
388 android:textStyle="bold"
389 android:text="Fecha" />
390
391
392</LinearLayout>
393
394<?xml version="1.0" encoding="utf-8"?>
395<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
396 android:layout_width="match_parent"
397 android:layout_height="match_parent"
398 android:orientation="vertical"
399 android:padding="20dp">
400
401 <EditText
402 android:id="@+id/et_miembro_id"
403 android:layout_width="match_parent"
404 android:layout_height="wrap_content"
405 android:layout_marginTop="40dp"
406 android:ems="10" />
407
408 <LinearLayout
409 android:layout_width="match_parent"
410 android:layout_height="match_parent"
411 android:orientation="horizontal"
412 android:gravity="center_horizontal">
413
414 <Button
415 android:id="@+id/btnActualizar"
416 android:layout_width="wrap_content"
417 android:layout_height="wrap_content"
418 android:text="Actualizar" />
419
420 <Button
421 android:id="@+id/btnEliminar"
422 android:layout_width="wrap_content"
423 android:layout_height="wrap_content"
424 android:text="Eliminar" />
425 </LinearLayout>
426
427</LinearLayout>