android - 未创建 SQlite 表,但在 Android 中创建了数据库

标签 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) 调用更新函数,代码 fragment 如下:

            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

我错过了什么?你们能帮我找到解决办法吗!

提前致谢!

最佳答案

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

只需替换这个

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" ;

关于android - 未创建 SQlite 表,但在 Android 中创建了数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564136/

相关文章:

android - 在 ListView 滚动时隐藏和显示 float 按钮

SQL - 插入一行并返回主键

java - 显示正确对应的 SQLite 数据库 Android/Java 的数据

android - 将 Android 应用程序上的 SQLite 数据库与远程 MySQL 数据库同步

android - 在 Android 中使用 rawQuery 和 rowid 从 sqlite 数据库中选择一行

java - 我的游戏循环不绘制生成对象

android - 全屏 Activity 中的状态栏高度

java - 服务器/客户端Socket编程和mysql数据库

sqlite - 计算表中列相同的列数,然后从另一个表中的列中减去

android - Cordova权限,在config.xml中如何处理?