Я использую базу данных для своего проекта, и я сделал большинство частей для базы данных.Но когда я объявляю переменную «SQLiteDatabase db» для использования метода «getWritableDatabase», программа перестает работать и выдает ошибку.Я пробовал разные способы решения проблемы, но никто не работал.
Это мой класс DBhelper:
public class DBhelper extends SQLiteOpenHelper {
// Database name
static final String dbAdi = "data.db";
static final Integer version = 1;
static final String userTable = "Personal Info";
static final String userID = "User_ID";
static final String userName = "Name";
static final String userAge = "Age";
static final String userHeight = "Height";
static final String userWeight = "Weight";
public DBhelper(Context context, String name, CursorFactory factory,int version) {
super(context, dbAdi, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ userTable +" (" + userID+" INTEGER PRIMARY KEY AUTOINCREMENT, "
+ userName +" TEXT NOT NULL, " + userAge +" INTEGER NOT NULL,"
+ userHeight + "INTEGER NOT NULL, " + userWeight +" REAL NOT NULL," );
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + kullaniciTablo );
db.execSQL("DROP TABLE IF EXISTS" + kayitTablo );
onCreate(db);
}
}
Это мой класс DBquery:
public class DBquery extends PersonalInfoRecord {
private DBhelper helper;
private SQLiteDatabase db;
public void save(PersonalInfo person)
{
helper = new DBhelper(null, DBhelper.dbAdi, null, DBhelper.versiyon);
db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DBhelper.userName, person.getName());
values.put(DBhelper.userHeight, person.getHeight());
values.put(DBhelper.userWeight, person.getWeight());
values.put(DBhelper.userAge, person.getAge());
try
{
db.insert(DBhelper.userTable, null, values);
db.close();
return 1;
}
catch(Exception e)
{
return 0;
}
}
И мой класс активности:
public class PersonalInforRecord extends Activity implements OnClickListener{
public static final int USER_OPTIONS_SESSION = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kisisel); // layout name
Button record = (Button) findViewById(R.id.btnrcd);
final EditText nameEdit = (EditText) findViewById(R.id.editname);
final EditText ageEdit = (EditText) findViewById(R.id.editage);
final EditText weightEdit = (EditText) findViewById(R.id.editwgt);
final EditText heightEdit = (EditText) findViewById(R.id.edithgt);
record.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DBquery dbq = new DBquery();
PersonalInfo person = new PersonalInfo();
person.setName(nameEdit.getText().toString());
person.setAge(Integer.parseInt(ageEdit.getText().toString()));
person.setWeight(Double.parseDouble(weightEdit.getText().toString()));
person.setHeight(Integer.parseInt(heightEdit.getText().toString()));
dbq.save(person);
}
});
}