2014-08-31 43 views
0

08-31 14:53:33.600:E/SQLiteLog(2731):(1)表分數沒有列 命名_date 08-31 14:53:33.604:E/SQLiteDatabase(2731):錯誤 插入_date = rer _score = 555 08-31 14:53:33.604: E/SQLiteDatabase(2731):android.database.sqlite.SQLiteException:表 分數沒有列_date(代碼1 ):在編譯時:INSERT INTO分數(_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):在 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):在 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):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 08-31 14:53:33.604:E/SQLiteDatabase(2731):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 08 -31 14:53:33.604:E/SQLiteDatabase(2731):在 android.app.ActivityThread.access $ 600(ActivityThread.java:141)08-31 14:53:33.604:E/SQLiteDatabase(2731):在 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(Native Method)08-31 14:53:33.604:E/SQLiteDatabase(2731):at java.lang.reflect.Method.invoke(Method.java:525)08-31 14:53:33.604: E/SQLiteDatabase(2731):在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737) 08-31 14:53:33.604:E/SQLiteDatabase(2731):在 COM .android.internal.os.ZygoteInit.main(ZygoteInit.java:553)08-31 14:53:33.604:E/SQLiteDatabase(2731):at dalvik.system.NativeStart。主(本地方法)表分數沒有列名_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

你從以前的問題中改變了什麼? – 2014-08-31 13:48:17

+0

不僅僅是再試一次 – ferandro 2014-08-31 14:03:53

+0

請幫助我對我來說非常重要 – ferandro 2014-08-31 14:04:26

回答

0

你錯過了你的列名和類型之間的空間。更改

KEY_DATE + "TEXT NOT NULL);") 

KEY_DATE + " TEXT NOT NULL);") 

onCreate()固定SQL後,卸載應用程序,以便舊數據庫被刪除,你的onCreate()再次運行。

+0

非常感謝你.. – ferandro 2014-08-31 15:41:17