2014-08-31 2 views
0

08-31 14: 53: 33.600: E/SQLiteLog (2731): (1) оценка таблицы не содержит столбца с именем _DATE 08-31 14: 53: 33,604: Е/SQLiteDatabase (2731): Ошибка Вставка _date = rer _score = 555 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): android.database.sqlite.SQLiteException: таблица баллов не имеет столбца с именем _date (код 1): при компиляции: INSERT INTO score (_date, _score) VALUES (?,?) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteConnection.nativePrepareStatement (Нативный Метод) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement (SQLiteConnection.java:889) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteConnection.prepare (SQLiteConnection.java: 500) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:588) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:58) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteStatement. (SQLiteStatement .java: 31) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict (SQLiteDatabase. java: 1467) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.database.sqlite.SQLiteDatabase.insert (SQLiteDatabase.java:1339) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at com.example.memoryofgame.DatabaseHandler.addScore (DatabaseHandler.java:62) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at com.example.memoryofgame.ScoreTable .onCreate (ScoreTable.java:23) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.app.Activity.performCreate (Activity.java:5133) 08-31 14:53: 33.604: E/SQLiteDatabase (2731): at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): atandroid.app.ActivityThread.performLaunchActivity (ActivityThread.java:2175) 08-31 14: 53: 33,604: Е/SQLiteDatabase (2731): в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2261) 08 -31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.app.ActivityThread.access $ 600 (ActivityThread.java:141) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1256) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.os.Handler.dispatchMessage (Handler.java:99) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.os.Looper.loop (Looper.java:137) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at android.app.ActivityThread.main (ActivityThread.java:5103) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at java.lang.reflect.Method .invokeNative (собственный метод) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at java.lang.reflect.Method.invoke (Method.java:525) 08-31 14: 53: 33.604: Е/SQLiteDatabase (2731): в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:737) 08-31 14: 53: 33,604: Е/SQLiteDatabase (2731): в ком .android.internal.os.ZygoteInit.main (ZygoteInit.java:553) 08-31 14: 53: 33.604: E/SQLiteDatabase (2731): at dalvik.system.NativeStart.Основной (Native Method)таблица оценка не имеет столбца с именем _DATE

public class Score { 

    private int id; 
    private String score; 
    private String date; 

    public Score(int id,String score,String date) { 

     this.id=id; 
     this.score=score; 
     this.date=date; 
    } 

    public Score(String score, String date) { 
     // TODO Auto-generated constructor stub 
     this.score=score; 
     this.date=date; 

    } 

    public Score() { 
     // TODO Auto-generated constructor stub 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getScore() { 
     return score; 
    } 

    public void setScore(String score) { 
     this.score = score; 
    } 

    public String getDate() { 
     return date; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 

} 




public class DatabaseHandler extends SQLiteOpenHelper { 

    // All Static variables 
    // Database Version 
    private static final int DATABASE_VERSION = 1; 

    // Database Name 
    private static final String DATABASE_NAME = "games"; 

    // Table name 
    private static final String TABLE_SCORE = "scores"; 

    // Score Table Columns names 
    private static final String KEY_ID_SCORE = "_id"; 
    private static final String KEY_SCORE = "_score"; 
    private static final String KEY_DATE="_date"; 

    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    // Creating Tables 
    public void onCreate(SQLiteDatabase db) { 
      db.execSQL("CREATE TABLE " + TABLE_SCORE + "(" 
        + KEY_ID_SCORE+" INTEGER PRIMARY KEY AUTOINCREMENT, " 
        + KEY_SCORE + " TEXT NOT NULL, " 
        + KEY_DATE + "TEXT NOT NULL);"); 

    } 

    // Upgrading database 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // Drop older table if existed 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_SCORE); 

     // Create tables again 
     onCreate(db); 
    } 

    // Adding new score 
    public void addScore(Score score) { 

     Log.d("addScore", score.toString()); 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_SCORE, score.getScore()); 
     values.put(KEY_DATE, score.getDate());// score value 

     // Inserting Values 
     db.insert(TABLE_SCORE, null, values); 
     db.close(); 

    } 

    //Getting single score 

    public Score getScore(int id){ 

     SQLiteDatabase db=this.getReadableDatabase(); 
     Cursor cursor=db.query(TABLE_SCORE, new String[]{KEY_ID_SCORE,KEY_SCORE,KEY_DATE},KEY_ID_SCORE+"=?",new String[] {String.valueOf(id)}, null, null, null); 

     if(cursor!=null){ 
      cursor.moveToFirst(); 
     } 
     Score score=new Score(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2)); 
     return score; 
    } 

    // Getting All Scores 
    public List<Score> getAllScores() { 

     List<Score> scoreList=new ArrayList<Score>(); 

     // Select All Query 
     String selectQuery = "SELECT *FROM " + TABLE_SCORE; 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     // looping through all rows and adding to list 

     if(cursor.moveToFirst()&& cursor!=null && cursor.getCount() > 0){ 
      while(cursor.moveToNext()) 
      { 
       Score score=new Score(); 
       score.setId(Integer.parseInt(cursor.getString(0))); 
       score.setScore(cursor.getString(1)); 
       score.setDate(cursor.getString(2)); 
       //Adding score to list 
       scoreList.add(score); 

      }; 
     } 
     cursor.close(); 
     db.close(); 
     return scoreList; 
    } 

    //Deleting single score 
    public void deleteScore(Score score){ 
     SQLiteDatabase db=this.getWritableDatabase(); 
     db.delete(TABLE_SCORE, KEY_ID_SCORE+"=?",new String[] {String.valueOf(score.getId())}); 
     db.close(); 
    } 
} 





public class ScoreTable extends Activity{ 

    private DatabaseHandler db; 

    private TextView tvScoreTable; 

    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.score_table); 

     db=new DatabaseHandler(this); 
     tvScoreTable=(TextView) findViewById(R.id.tvScoreTable); 
     db.addScore(new Score(""+555,"rer")); 
     db.addScore(new Score(""+32, "ere")); 



     tvScoreTable.setOnClickListener(new View.OnClickListener() 
     { 

      @Override 
      public void onClick(View v) 
      { 

       // Reading all contacts 
       Log.d("Reading: ", "Reading all contacts.."); 
       List<Score> score = db.getAllScores();  

       for (Score cn : score) 
       { 
        String log="Id: "+cn.getId()+" ,Score: " + cn.getScore() + " ,Date: " + cn.getDate(); 
         // Writing Contacts to log 
       Log.d("Name: ", log); 
       } 
      } 
     }); 


    } 

} 
+0

Что вы изменили из своих предыдущих вопросов? –

+0

ничего не дайте снова – ferandro

+0

Пожалуйста, помогите мне в его очень важном для меня – ferandro

ответ

0

Вы пропустили пробел между вашим именем столбца и типом. Изменение

KEY_DATE + "TEXT NOT NULL);") 

в

KEY_DATE + " TEXT NOT NULL);") 

После установки SQL в onCreate(), удалите приложение, так что старая база данных удаляется, и ваша onCreate() запускается снова.

+0

большое вам спасибо. – ferandro

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