2013-04-01 3 views
-1

Итак, у меня есть следующий фрагмент кода, код пытается добавить данные в базу данных, и если он не может закрыть приложение. Независимо от того, что я делаю, приложение просто закрывается, любые советыБаза данных Android не вставляет данные

package net.connormccarthy.walkingdeadcharacterprofiles; 

import java.util.ArrayList; 


import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 

public class rickAddNotes extends Activity 
{ 

SQLiteDatabase db; 




    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     // this try catch block returns better error reporting to the log 
      // Android specific calls 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.ricknotes); 
      Button btnLeft=(Button)findViewById(R.id.BtnRickSave); 


      // create the database manager object 
      //db = new MainActivity(); 


      final Button button = (Button) findViewById(R.id.BtnRickSave); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        data(); 
       } 
      });  


    } 


    public long data() 
    { 
     long d=0; 
     //EditText edittext1=(EditText)findViewById(R.id.editText1); 
     //String notes = edittext1.toString(); 


try { 

     final String Insert_Data="INSERT INTO Characters VALUES(2,'WOOP','5')"; 
     db.execSQL(Insert_Data); 
    } catch (Exception e) { 

     System.exit(0); 

    } 
    return d; 

    } 


    public void showdata(View view) 
    { 
     Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 
     int count= c.getCount(); 
     c.moveToFirst(); 
     TableLayout tableLayout = new TableLayout(getApplicationContext()); 
     tableLayout.setVerticalScrollBarEnabled(true); 
     TableRow tableRow; 
     TextView textView,textView1,textView2,textView3,textView4,textView5; 
     tableRow = new TableRow(getApplicationContext()); 
     textView=new TextView(getApplicationContext()); 
     textView.setText("Firstname"); 
     textView.setTextColor(Color.RED); 
     textView.setTypeface(null, Typeface.BOLD); 
     textView.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView); 
     textView4=new TextView(getApplicationContext()); 
     textView4.setText("LastName"); 
     textView4.setTextColor(Color.RED); 
     textView4.setTypeface(null, Typeface.BOLD); 
     textView4.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView4); 
     textView5=new TextView(getApplicationContext()); 
     textView5.setText("Email"); 
     textView5.setTextColor(Color.RED); 
     textView5.setTypeface(null, Typeface.BOLD); 
     textView5.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView5); 
     tableLayout.addView(tableRow); 
     for (Integer j = 0; j < count; j++) 
     { 
      tableRow = new TableRow(getApplicationContext()); 
      textView1 = new TextView(getApplicationContext()); 
      textView1.setText(c.getString(c.getColumnIndex("character"))); 
      textView2 = new TextView(getApplicationContext()); 
      textView2.setText(c.getString(c.getColumnIndex("notes"))); 
      textView1.setPadding(20, 20, 20, 20); 
      textView2.setPadding(20, 20, 20, 20); 
      tableRow.addView(textView1); 
      tableRow.addView(textView2); 
      tableLayout.addView(tableRow); 
      c.moveToNext() ; 
     } 
     setContentView(tableLayout); 
    db.close(); 
    } 





} 

Если я не добавляю исключение, приложение просто падает. Я хочу в конечном итоге заставить его работать с переменной, которую я передаю ей (editText1), но даже когда я жестко кодирую данные, приложение просто падает или закрывается, в зависимости от погоды или нет. Я добавляю исключение.

Любая помощь очень ценится.

+1

Пожалуйста, правильно отформатируйте свой код, чтобы нам не пришлось прокручивать и отправлять трассировку стека из logcat. – Simon

+0

сначала вы не инициализируете экземпляр 'db'' SQLiteDatabase' перед выполнением операций БД и второй добавляете результат logcat с вопросом, чтобы получить дополнительную помощь. –

ответ

0

в вашем SQL заявление, мы рассматриваем 2 типа возможных ошибок -

1>

final String Insert_Data="INSERT INTO Characters VALUES(2,'WOOP','5')"; 

Здесь ваше имя таблицы Characters

, где, как и в

Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 

название вашей таблицы: Character

Пожалуйста, проверьте это.

2> Ваш выбор запрос должен быть -

Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 

должно быть -

Cursor c=db.rawQuery("SELECT * from Character WHERE character = 'rick'", null); 

Пожалуйста, посмотрите на эти 2 указателей. Мы поможем вам в дальнейших комментариях.

Thanks

+0

Спасибо за ваш ответ! Я изменил их, но приложение все еще выходит, когда я нажимаю кнопку для запуска функции. –

+0

Можете ли вы дать нам указатель на исключение logcat ??? –

+2

@ConnorMcCarthy Почему вы игнорируете запросы на отправку трассировки стека исключений из logcat? – Simon

Смежные вопросы