2016-09-06 4 views
-1

Я получил эту ошибку:Как вставить дату в SQLite?

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

В приведенном ниже коде: enter image description here

lsd и nsd являются имена столбцов с типом данных 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

PLS нажмите (введите описание изображения здесь) в поставленный выше вопрос, чтобы увидеть изображение с ошибкой –

+0

ошибка на lsd и nsd -> contentValues.put ("lsd", lsd); contentValues.put ("nsd", nsd); не может решить метод method_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

yup ошибка красной строки теперь ушла .. :) но мой вопрос будет ли он принимать любую дату сейчас ??? без беспокойства 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

Смежные вопросы