我是Android编程的新手,我在创建SQLite表时感到很遗憾。所以在我的应用中,用户输入三个值(Intime
,OutTime
和Date
)应保存到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
我缺少什么?你能帮我找一个解决方案吗?
提前致谢!
答案 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" ;