你好我需要一些帮助我的android数据库,因为我搜索了很多应该是什么问题,但没有任何帮助,我希望有人可以帮助我在这种情况下(我是一个初学的Android开发人员。)第一个工作只是有价值的工作没有。 这是我的代码:
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.Cursor;
import android.database.SQLException;
public class DbConstans
{
private static final String DATABASE_NAME="mydatabase";
public static final int DATABASE_VERSION=2;
SQLiteDatabase db;
Context ctx;
DatabaseHelper dbhelper;
MyValues mvhelper;
public DbConstans(Context context)
{
this.ctx=context;
dbhelper=new DatabaseHelper(ctx);
mvhelper=new MyValues(ctx);
}
public class DatabaseHelper extends SQLiteOpenHelper
{
public static final String DATABASE_TABLE="logintable";
public static final String KEY_ID="id";
public static final String KEY_USERNAME="username";
public static final String KEY_PASSWORD="password";
public static final String TABLE_CREATE="create table "+ DATABASE_TABLE +" ( "+ KEY_ID +
" integer primary key autoincrement, " + KEY_USERNAME + " text not null, " + KEY_PASSWORD
+ " text not null);";
public DatabaseHelper(Context context)
{
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) throws SQLException {
try{
db.execSQL(TABLE_CREATE);
}catch(SQLException e)
{
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXIST logintable");
onCreate(db);
}
}
public class MyValues extends SQLiteOpenHelper
{
public static final String DATABASE_NAME2="valuetable";
public static final String KEY_ID1="id";
public static final String KEY_FMON="money";
public static final String TABLE_CREATE2="create table " + DATABASE_NAME2 +
" ( " + KEY_ID1 + " integer primary key autoincrement, " + KEY_FMON +
" text not null);";
public MyValues(Context context)
{super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) throws SQLException{
try{
db.execSQL(TABLE_CREATE2);
}catch(SQLException e)
{
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion) {
db.execSQL("DROP TABLE IF EXIST"+TABLE_CREATE2);
onCreate(db);
}
}
public DbConstans open()
{
dbhelper=new DatabaseHelper(ctx);
db=dbhelper.getWritableDatabase();
mvhelper=new MyValues(ctx);
db=mvhelper.getWritableDatabase();
return this;
}
public void close()
{
dbhelper.close();
mvhelper.close();
}
public long register(String user, String pasw)
{
ContentValues initialValues=new ContentValues();
initialValues.put(DatabaseHelper.KEY_USERNAME, user);
initialValues.put(DatabaseHelper.KEY_PASSWORD, pasw);
return db.insertOrThrow(DatabaseHelper.DATABASE_TABLE, null, initialValues);
}
public boolean login(String username,String passw)
{
Cursor mcursor=db.rawQuery("SELECT * FROM " + DatabaseHelper.DATABASE_TABLE + " WHERE username=? AND password=?", new String[]{username,passw});
if (mcursor!=null)
{
if (mcursor.getCount() > 0)
{
return true;
}
}
return false;
}
public long mon(String fmon)
{
ContentValues initVal=new ContentValues();
initVal.put(MyValues.KEY_FMON, fmon);
return db.insertOrThrow(MyValues.DATABASE_NAME2, null, initVal);
}
public Cursor returnMon()
{
return db.query(MyValues.DATABASE_NAME2,new String[]{MyValues.KEY_FMON},null,null,null,null,null);
}
}
答案 0 :(得分:0)
您正在为两个助手使用相同的数据库名称:
public MyValues(Context context)
{super(context,DATABASE_NAME,null,DATABASE_VERSION);
根据您的代码,应为DATABASE_NAME2
。
数据库DATABASE_NAME
已经存在且版本正确,导致onCreate()
或onUpgrade()
无法运行,会发生什么情况。
但是,考虑将助手合并为一个,除非你真的想拥有两个独立的数据库。