tv=(TextView)findViewById(R.id.textView1);
SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase("/sdcard/assets.db", null);
Cursor c=sqLiteDatabase.rawQuery("select datetime('now')", null);
if(c.moveToFirst()){
tv.setText(c.getString(0));
}
tv.setText("1234");
c.close();
sqLiteDatabase.close();
Я написал этот код для работы с базой данных SQLite
чтобы получить текущую дату и показать дату в текстовом элементе. Когда я запускаю код, он не показывает ошибки, но конечный результат показал, что состояние sql select datetime('now')
не возвращает текущую дату. TextView показал "1234", но не дату.
пожалуйста, скажите мне, что не так с кодом, или если эти методы являются неправильным методом. ps Я знаю, как получить дату с помощью java-календаря, на этот вопрос задается вопрос, могу ли я напрямую получить дату, запросив базу данных SQLite.
Спасибо за помощь.
Для работы с датой попробуйте следующее
Дата, поданная в таблице SQLite, будет TEXT, а данные даты должны храниться как формат "2012-12-31 00:12:00", что сравнительная доза не дает вам проблем, и если мы считаем, что поля - date_from и date_to, и мы сохраняем текущую дату на to_date, тогда мы должны получить текущую дату ниже и
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String to_date = sdf.format(new Date());
и SQL-запрос должен быть
crs = db.rawQuery(
"SELECT _id, date_from, date_to, done_or_not, list_name " +
"FROM list_tbl " +
"WHERE " +
"date_from <= Datetime('"+to_date+"') AND date_to >= Datetime('"+to_date+"')", null);
Это шутка? После установки даты в текстовом режиме вы переписываете текст 1234. Нормально, чтобы не видеть дату.
Измените свой код как:
if(c.getCount() >0)
c.moveToFirst();
tv.setText(c.getString(0));
}
else{
tv.setText("1234");
}
c.close();
sqLiteDatabase.close();
поместите последний tv.setText
внутри else.
У вас нет выражения else, если это ваша проблема.
попробуй это:
tv=(TextView)findViewById(R.id.textView1);
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = null;
try{
cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list or get object
if (cursor.moveToFirst()) {
do {
tv.setText(c.getString(0));
} while (cursor.moveToNext());
}
else{
tv.setText("1234");
}
}
catch (Exception e) {
}
finally{
if(cursor != null)
cursor.close();
if(!db.equals(null) || db != null)
db.close();
}