插入在sqlitedatabase当前日期 [英] Inserting current date in sqlitedatabase

查看:232
本文介绍了插入在sqlitedatabase当前日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在其中我插入当前日期的sqlitedatabase。的问题是,当我插入当前日期,这已是在数据库中的日期,得到改变到新的日期,以及。我想插入当前日期,而不是​​改变previously插入日期。请告诉我,我在做什么错在这里。谢谢

 公共静态最后弦乐KEY_DATE =CURRENT_DATE; @覆盖
 公共无效的onCreate(SQLiteDatabase DB){
    // TODO自动生成方法存根
    db.execSQL(CREATE TABLE+ DATABASE_TABLE +(+
        KEY_ROWID +INTEGER PRIMARY KEY AUTOINCREMENT,+
        KEY_DATE +TEXT NOT NULL,+
        KEY_NAME +TEXT NOT NULL););
   }   @覆盖
   公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
      // TODO自动生成方法存根
     db.execSQL(DROP TABLE IF EXISTS+ DATABASE_TABLE);
     的onCreate(DB);
   }   公共MyDatabase的(语境C){
        ourContext = C;
   }   公共MyDatabase的打开()抛出的SQLException {
       ourHelper =新DbHelper(ourContext);
       ourDatabase = ourHelper.getWritableDatabase();
       返回此;
   }   公共无效的close(){
       ourHelper.close();
   }  众长createEntry(字符串名称){
     SimpleDateFormat的SDF =新的SimpleDateFormat();
     日期数值指明MyDate =新的日期();
     ContentValues​​ CV =新ContentValues​​();
     cv.put(KEY_DATE,sdf.format(数值指明MyDate));
     cv.put(KEY_NAME,名);
     返回ourDatabase.insert(DATABASE_TABLE,空,CV);
 }

//下面code显示我是如何从阅读分贝

 公共字符串的getData(){
            // TODO自动生成方法存根            的String [] =列新的String [] {KEY_ROWID,KEY_DATE,KEY_NAME};
            光标C = ourDatabase.query(DATABASE_TABLE,列,NULL,NULL,NULL,NULL,NULL);
            字符串结果=;            INT iRow = c.getColumnIndex(KEY_ROWID);
            INT i日期= c.getColumnIndex(KEY_DATE);
            INT INAME = c.getColumnIndex(KEY_NAME);
            为(c.moveToFirst();!c.isAfterLast(); c.moveToNext()){                结果=结果+ c.getString(iRow)++ c.getString(i日期)++ c.getString(INAME)++\\ n;            }            返回结果;         }


解决方案

这是我做的是,我后来添加的日期栏的错误。通过在同一时间产生的所有列,解决了问题。

 覆盖
公共无效的onCreate(SQLiteDatabase DB){
// TODO自动生成方法存根
db.execSQL(CREATE TABLE+ DATABASE_TABLE +(+
    KEY_ROWID +INTEGER PRIMARY KEY AUTOINCREMENT,+
    KEY_DATE +TEXT NOT NULL,+
    KEY_NAME +TEXT NOT NULL););

}

I have a sqlitedatabase in which I am inserting current date. The problem is that when I insert the current date, the dates which already are in the database get changed to the new date as well. I want to insert the current date and not change the previously inserted dates. Please tell me what am I doing wrong here. Thanks

 public static final String KEY_DATE = "current_date";

 @Override
 public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
        KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
        KEY_DATE + " TEXT NOT NULL, " + 
        KEY_NAME + " TEXT NOT NULL);");
   }

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
     db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
     onCreate(db);
   }

   public MyDatabase(Context c){
        ourContext = c;
   }

   public MyDatabase open() throws SQLException {
       ourHelper = new DbHelper(ourContext);
       ourDatabase = ourHelper.getWritableDatabase();
       return this;
   }

   public void close(){
       ourHelper.close();
   }

  public long createEntry(String name) {
     SimpleDateFormat sdf = new SimpleDateFormat();
     Date mydate = new Date();
     ContentValues cv = new ContentValues();
     cv.put(KEY_DATE, sdf.format(mydate));
     cv.put(KEY_NAME , name);
     return ourDatabase.insert(DATABASE_TABLE, null, cv);
 }

// Below code show how I am reading from db

public String getData(){
            // TODO Auto-generated method stub

            String[] columns = new String[]{KEY_ROWID,KEY_DATE,KEY_NAME};
            Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
            String result =" ";

            int iRow = c.getColumnIndex(KEY_ROWID);
            int iDate = c.getColumnIndex(KEY_DATE);
            int iName = c.getColumnIndex(KEY_NAME);


            for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){

                result = result + c.getString(iRow) + " " + c.getString(iDate) + " " + c.getString(iName) + " " + "\n";     

            }

            return result;

         }

解决方案

The mistake which I was making was that I had added date column later on. By creating all the columns at one time, fixed the problem.

Override


public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
    KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
    KEY_DATE + " TEXT NOT NULL, " + 
    KEY_NAME + " TEXT NOT NULL);");

}

这篇关于插入在sqlitedatabase当前日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆