SQlite表未创建,但是在Android

时间:2016-01-02 08:45:46

标签: android sqlite

我是Android编程的新手,我在创建SQLite表时感到很遗憾。所以在我的应用中,用户输入三个值(IntimeOutTimeDate)应保存到Record.db下的“updatedata”表中 这是我的代码:

public class Inserted_DB{

public static final String dbname="Record" ;
public static final String table="updatedata";
public static final String in="InTime";
public static final String out="OutTime";
public static final String date="Date";
SQLiteDatabase db;
Context ctx;
helper help;

public Inserted_DB(Context ctx)
{
    this.ctx=ctx;
    help=new helper(ctx);
}


private static class helper extends SQLiteOpenHelper
{
    public helper(Context ctx)

    {
        super(ctx,dbname,null,2);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {

       try
       {
           String sql = "create table "+ table  +"(InTime text,OutTime text,Date text)";
           db.execSQL(sql);

       }
       catch(Exception e1)
        {
            e1.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        db.execSQL("DROP TABLE IF EXISTS " + table);
        onCreate(db);
    }
}
 public void update(String In1,String out1,String date1,Context ct)
 {
   db=help.getWritableDatabase();
   ContentValues con=new ContentValues();
   con.put(in,In1);
   con.put(out,out1);
   con.put(date,date1);
   db.insert(table,null,con);
   db.close();
  }}

我只是从另一个类(Update Tracker)调用更新函数,下面的代码段如下:

            String in_db=txtTime.getText().toString();
            String date_db=txtDate.getText().toString();
            String out_db=txtTime2.getText().toString();
            Inserted_DB db1=new Inserted_DB(getBaseContext());
            db1.update(in_db,out_db,date_db,UpdateTracker.this);

创建数据库,但表没有。我使用DDMS文件浏览器导航到相应的路径 data / data / mypackage.com.myapp / databases ,可以看到创建的数据库。使用sqlite3当我查询“。databases”时,它显示数据库名称,但是当我查询“.tables”时它是空的。

Updated Snap for DB getting created

我缺少什么?你能帮我找一个解决方案吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为问题是因为创建表格时的空间

只需替换此

create table "+ table  +" (InTime text,OutTime text,Date text)

而不是

create table "+ table  +"(InTime text,OutTime text,Date text)

修改

也会更改数据库名称

public static final String dbname="Record.db";

而不是

public static final String dbname="Record" ;