2012-02-16 3 views
1

Я учусь SQLite, и я написал следующий классSQLite получает ошибки

SQLiteTestActivity (Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
}// end of 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL("CREATE TABLE" + MP_TABLE_NAME + " (" + 
      BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      " name TEXT, " + 
      " lat REAL, "+ 
      " lng REAL,"+ 
      " roll REAL,"+ 
      " pitch REAL,"+ 
      " yaw REAL,"+ 
      " path TEXT"+ 
      ");"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 

} 

public Double[] getMP_RPY(long id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    SQLiteCursor c = (SQLiteCursor) db.rawQuery("SELECT roll,pitch,yaw FROM MP_Data WHERE "+ 
               BaseColumns._ID+"="+ 
               Long.toString(id), null); 
    c.moveToFirst(); 
    Double[] r = { c.getDouble(0), c.getDouble(1), c.getDouble(2) }; 
    return r;  
} 

public Double[] getMP_Coor(long id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    SQLiteCursor c = (SQLiteCursor) db.rawQuery("SELECT lat, lng FROM MP_Data WHERE "+ 
               BaseColumns._ID+"="+ 
               Long.toString(id), null); 
    c.moveToFirst(); 
    Double[] r = { c.getDouble(0), c.getDouble(1)}; 
    return r;  
} 

public String[] getMP_Name(long id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    SQLiteCursor c = (SQLiteCursor) db.rawQuery("SELECT name FROM MP_Data WHERE "+ 
               BaseColumns._ID+"="+ 
               Long.toString(id), null); 
    c.moveToFirst(); 
    String[] r = { c.getString(0)}; 
    return r;  
} 

public void deleteMP(long id) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(MP_TABLE_NAME, BaseColumns._ID+"="+Long.toString(id),null); 
} 

, а также следующую деятельность:

public class SQLSaveData extends Activity{ 

EditText et01, et02; 
Button btn; 
SQLiteTestActivity mphelper; 
SQLiteDatabase db ; 
ContentValues cv; 

OnKeyListener et01Listener = new OnKeyListener() { 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // TODO Auto-generated method stub 

     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) { 

      save("name", et01.getText().toString()); 

      return true; 
     } 
     return false; 
    } 
}; 

OnKeyListener et02Listener = new OnKeyListener() { 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // TODO Auto-generated method stub 

     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) { 

      save("lat", et02.getText().toString()); 
       return true; 
      } 
     return false; 
    } 
}; 


public void save(String key, String value) 
{ 
    cv.put(key, Double.valueOf(value)); 
    long newID = db.insert("MPDetails", null, cv); 
} 

@Override  
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    et01 = (EditText) findViewById(R.id.et01); 
    et02 = (EditText) findViewById(R.id.et02); 
    btn = (Button) findViewById(R.id.btn01); 

    mphelper = new SQLiteTestActivity(this); 
    db = mphelper.getWritableDatabase(); 
    cv = new ContentValues(); 

    et01.setOnKeyListener(et01Listener); 
    et02.setOnKeyListener(et02Listener); 
} 

, но я всегда получаю ошибку чтения " приложение неожиданно остановилось »; , когда я отключу «комментарий» следующих трех строк: APP. оленья кожа дать эту ошибку, но когда я включаю следующие три строки она вылетает

mphelper = new SQLiteTestActivity(this); 
    db = mphelper.getWritableDatabase(); 
    cv = new ContentValues(); 
+0

Что такое выходной вывод исключения logcat? –

+1

Загрузите свой скриншот логарифма. – Deepak

ответ

0

Я думаю, вам нужно поставить пробел в конце СОЗДАТЬ строки, если вы не получили место в начале MP_TABLE_NAME, который будет нечетным.

"CREATE TABLE " + MP_TABLE_NAME 

Это может не решить вашу проблему, но это будет началом.

+0

Это действительно решило проблему ... спасибо –

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