2015-03-24 4 views
-4

я использовал следующий код для создания базы данныхПолучить дату из базы данных SQLite в Android Studio

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DBclass extends SQLiteOpenHelper 
{ 
private static final String DB_NAME="Camera"; 
private static final String TABLE_NAME="Cam"; 

public DBclass(Context context) 
{ 
    super(context, DB_NAME, null, 1); 

} 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{ 
} 
//table creation 
public void onCreate(SQLiteDatabase db) 
{ 
    db.execSQL("CREATE TABLE IF NOT EXISTS " + 
      TABLE_NAME + 
      " (date Number, time Number, comments Varchar,image blob);"); 
} 
} 

и эту функцию, чтобы сохранить данные:

public void store(View view) 
{ 
    byte[] img=bitmapToByte(photo); 
    String DATE,TIME,COMMENTS; 
    DATE=date.getText().toString(); 
    TIME=time.getText().toString(); 
    COMMENTS=comments.getText().toString(); 
    ContentValues values=new ContentValues(); 
    values.put("date",DATE); 
    values.put("time",TIME); 
    values.put("comments",COMMENTS); 
    values.put("image",img); 

    test.getWritableDatabase(); 
    test.getWritableDatabase().insert("cam", "date", values); 
} 

и это для поиска

String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); 
List<String> commentList = new ArrayList<String>(); 
DBclass db=new DBclass(getApplicationContext()); 
Cursor cursor; 

cursor = db.rawQuery("SELECT comments FROM Cam WHERE date = ?", new String(date)); 

if (cursor.moveToFirst()) { 
    do { 
         commentList.add(cursor.getString(0)); 
        }while(cursor.moveToNext()); 
       } 

       comm.setText(commentList.toString()); 
      } 

Сохранение данных выполняется. Текущая системная дата сохраняется в столбце «дата». Требование состоит в том, чтобы получить «дату» из проверки базы данных, если она равна системной дате, и если да, отобразите соответствующие «комментарии» в текстовом виде.

Как получить «дату» из базы данных?

+0

Я начинаю изучать андроид ... Пожалуйста, помогите – Gopi

+0

компилятор не смог разрешить метод rawQuery ... пожалуйста, помогите – Gopi

ответ

0
public String getAllCommentsByDate(long date){ 
    List<String> commentList = new ArrayList<String>(); 

    String selectQuery = "SELECT comments FROM " + TABLE_NAME + " WHERE date = " + String.valueOf(date); 

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

    if (cursor.moveToFirst()){ 
     do{ 
      commentList.add(cursor.getString(0)) 
     }while(cursor.moveToNext()); 
    } 
    return commentList; 
} 

Я не знаю, в какой форме была ваша дата. Поэтому в этом примере используется длинное значение для определенного времени. Вы должны правильно изменить это по вашим потребностям.

+0

Я стараюсь вашу логику, но небольшую проблему. Компилятор не может решить метод db.rawQuery. Что может быть фактором? Ive создал объект db для моего класса базы данных и вызвал метод getWritableDatabase слишком. – Gopi

+0

Не могли бы вы предоставить дополнительную информацию об ошибке? Для меня это хорошо работает. Этот метод должен находиться внутри класса, который простирается от SqliteOpenHelper, а метод rawQuery - из объекта SqliteDatabase. – HeW

+0

"cursor = db.rawQuery (" SELECT comments FROM Cam WHERE date =? ", Новая строка (дата));" Это инструкция ошибки. db - объект класса базы данных, который импортирует SqliteOpenHelper. Ошибка состояния «не может разрешить метод rawQuery» – Gopi

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