2016-09-06 82 views
-1

我得到這個錯誤:如何在SQLite中插入日期?

Cannot resolve method 'put(java.lang.String, java.util.Date)'

在下面的代碼: enter image description here

lsdnsd與DATE數據類型的列名。

public void onCreate(SQLiteDatabase db) 
{ 
    String query="CREATE TABLE"+c_tablename+"(c_id int AUTO_INCREMENT primary key,name varchar(20),contact double ,address varchar(50)," + 
      "bike_number varchar(16),bike_type varchar(10),lsd date,nsd date,lwd varchar(100),cost int,message varchar(100))"; 
    db.execSQL(query); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{ 
    String query= "DROP TABLE IF EXIST "+c_tablename; 
    String query2="DROP TABLE IF EXIST "+h_tablename; 
    db.execSQL(query); 
    db.execSQL(query2); 

    onCreate(db); 
} 

public void saveData(String name , int contact , String address , String bike_number , String bike_type , java.util.Date lsd , 
         java.util.Date nsd , String lwd , int cost , String message) 
{ 
    ContentValues contentValues=new ContentValues(); 
    contentValues.put("name",name); 
    contentValues.put("contact",contact); 
    contentValues.put("address",address); 
    contentValues.put("bike_number",bike_number); 
    contentValues.put("bike_type",bike_type); 
    contentValues.put("lsd",lsd); 
    // The error is in the following line ("Cannot resolve method 'put(java.lang.String, java.util.Date)'"): 
    contentValues.put("nsd",nsd); 
    contentValues.put("lwd",lwd); 
    contentValues.put("cost",cost); 
    contentValues.put("message",message); 
} 
+0

請點擊(在這裏輸入圖像描述)在上面的問題,看看有錯誤的圖像 –

+0

錯誤發生在lsd和nsd - > contentValues.put(「lsd」,lsd); contentValues.put(「nsd」,nsd); 無法解決方法'put(java.lang.String,java.util.Date)' –

回答

1

嗨,你可以嘗試這樣的事情,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
ContentValues contentValues=new ContentValues(); 
contentValues.put("lsd", dateFormat.format(lsd)); 
+0

燁紅線錯誤現在不見了.. :)但我的問題是現在會採取任何日期?不打擾ryt? –

+0

可能它應該工作:) –

2

阿克沙伊顯示了正確的解決您的問題。

背景信息是SQLite不支持的日期類型:

SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values

見SQLite的文檔在https://www.sqlite.org/datatype3.html#section_2_2