我在使用以下代码获取更新查询时遇到问题:
ExternalDbOpenHelper dbOpenHelper = new
ExternalDbOpenHelper(MainBarcode.this, DB_NAME);
database = dbOpenHelper.getWritableDatabase();
String testString = "11";
String Datetime;
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
Datetime = dateformat.format(c.getTime());
try
{
ContentValues values = new ContentValues();
values.put("TIMEOUT",Datetime );
int int1 = Integer.valueOf(testString);
database.update(TABLE_NAME, values, FRIEND_ID + " = ?",new String[] { String.valueOf(testString) });
} catch (Exception e) {
}
database.close();
我的数据库包含以下列
TABLE_NAME = "LOG"
FRIEND_ID = AUTO INCREMENT NUMBER
FRIEND_TIMEOUT = TIME IN A STRING
我正在尝试通过指定FRIEND_TIMEOUT
来使用当前时间和日期更新列Friend_ID
。
ID号是一个字符串,我正在尝试将其传递给更新查询。
查询运行但不更新记录。
我出错的任何想法?
答案 0 :(得分:0)
我认为您为更新设置了错误的字段名称。 您已设置“TIMEOUT”,列名称为“FRIEND_TIMEOUT”。 请参阅以下代码
SQLiteDatabase database = databaseHelper.getWritableDatabase();
String testString = "1";
String Datetime;
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
Datetime = dateformat.format(c.getTime());
try {
ContentValues values = new ContentValues();
values.put("FRIEND_TIMEOUT", Datetime);
int int1 = Integer.valueOf(testString);
long result = database.update("LOG", values, "FRIEND_ID" + " = ?", new String[]{String.valueOf(testString)});
Log.d("result", "" + result);
} catch (Exception e) {
e.printStackTrace();
}
database.close();
}
注意:如果您仍然遇到此问题,请在上面的catch块中添加一行以打印异常,这样您就可以了解问题