2016-09-06 84 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