[英]How do I connect an SQLite database (SQLite Firefox extension) to an Android application, for android 2.1 to query and insert to the database
[英]sqlite: how to insert time in sqlite database from android application
我有兩個edittext,當我點擊它時會彈出timepickerdialog,時間將在edittext中為我的代碼設置,
int TIME_PICKER_ID = 1,hour,minute,flag;
edittext_starttime.setOnClickListener(this);
edittext_endtime.setOnClickListener(this);
final Calendar c = Calendar.getInstance();
hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE);
@Override
public void onClick(View v) {
if(v.getId() == R.id.editText_starttime_stsa){
flag = 1;
showDialog(TIME_PICKER_ID);
}//editText_starttime_stsa
if(v.getId() == R.id.editText_endtime_stsa){
flag = 2;
showDialog(TIME_PICKER_ID);
}//editText_endtime_stsa
if(v.getId() == R.id.button_create_stsa){
onCreateAlert();
}//button_create_susa
}
@Override
protected Dialog onCreateDialog(int id) {
switch(id){
case 1:
return new TimePickerDialog(this, timePickerListener, hour, minute, false);
}
return null;
}
private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener(){
public void onTimeSet(TimePicker view,int selectedHour,int selectedMinute){
hour = selectedHour;
minute = selectedMinute;
updateDisplay(hour,minute);
}
};
private void updateDisplay(int hour, int minute) {
if(flag==1){
edittext_starttime.setText(new StringBuilder().append(pad(hour)).append(":").append(pad(minute)));
}else if(flag==2){
edittext_endtime.setText(new StringBuilder().append(pad(hour)).append(":").append(pad(minute)));
}
}
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
我想在sqlite數據庫中插入start_time和end_time,因為我已經編寫了查詢,
String query = "insert into Status_Master(status_id, status_name, status_description, timewindow_start, timewindow_end) values("+status_id+",'"+status_name+"','"+status_desc+"',time('"+start_time+"'),time('"+end_time+"'))";
但我收到了錯誤。 這是在數據庫中插入時間的正確方法嗎?
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = new Date();
Date date2 = new Date();
ContentValues initialValues = new ContentValues();
initialValues.put("status_id",status_id);
initialValues.put("status_name", status_name);
initialValues.put("status_description", status_desc);
initialValues.put("timewindow_start", dateFormat.format(date1));
initialValues.put("timewindow_end", dateFormat.format(date2));
long result= mDb.insert(DB_TABLE_NAME, null, initialValues);
這樣做吧。 首先創建數據庫,我的代碼就在這里。
public class AppDatabase extends SQLiteOpenHelper
{
private final static String DATABASE_NAME="AppDB";
public final static String TABLE_PASSWORD="password";
public static int version=1;
public Context cont;
public AppDatabase(Context context)
{
super(context,DATABASE_NAME, null, version);
this.cont=context;
}
@Override
public void onCreate(SQLiteDatabase sqlDb)
{
sqlDb.execSQL("Create table password(_id INTEGER autoincreament PRIMARY KEY, monthOfBirth INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase sqlDb, int old, int latest)
{
sqlDb.execSQL("DROP TABLE password");
this.onCreate(sqlDb);
}
}
現在創建一個事務類,通過方法將值插入數據庫。
public long savePassword(int numberMonth)
{
long x=-1;
sqliteDb=appDb.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("monthOfBirth", numberMonth);
try
{
if(sqliteDb.isOpen())
{
x=sqliteDb.insert("password", null, values);
if(x>=0)
{
//Toast.makeText(context, "Password Save", Toast.LENGTH_SHORT).show();
}
}
}
catch(Exception exc)
{
System.err.print(exc);
}
return x;
}
現在,在您的活動中,只需從edittext中選擇值,然后通過Transaction的對象調用此方法。
trans = new Transactions(MainActivity.this);
long x = trans.savePassword(pMonth);
if (x >= 0)
{
Toast.makeText(getBaseContext(), "Password Save in Database.", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getBaseContext(), "Password didn't save.", Toast.LENGTH_SHORT).show();
}
希望這會有所幫助。
請檢查SQLite站點並查看時間函數。 SQLite僅支持站點中列出的12種格式。 確保您提供的字符串格式正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.