我已經建立了一個SQLite數據庫,在創建我需要的表方面工作正常。我一直在試圖做的是插入數據庫,但從另一個類(Signup.java)。我想抓取文本輸入到edittext中並將其插入到數據庫中,但僅在單擊按鈕時。Android如何將數據插入到數據庫外的數據庫輔助類
見下面我DatabaseHelper類:
package com.example.testerrquin.euro2016fanguide;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Euro2016.db";
public static final String TABLE_USERS = "Users_table";
public static final String TABLE_CAPACITY = "Capacity_table";
public static final int CapacityOne = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("Create table " + TABLE_USERS +" (UserID INTEGER PRIMARY KEY AUTOINCREMENT, Forename TEXT, Surname TEXT, Email TEXT, Password TEXT, Country TEXT)");
db.execSQL("Create table " + TABLE_CAPACITY +" (CapacityID INTEGER PRIMARY KEY AUTOINCREMENT, Capacity INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CAPACITY);
onCreate(db);
}
}
基本上我需要運行開始 「db.execSQL」 的路線。我可能需要在某處引用'db'以鏈接到Databasehelper類,但不確定。此刻,我正在'無法解析符號'db'。
CompleteB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String grabFirstname = UsernameET.getText().toString();
String grabSurname = SurnameET.getText().toString();
String grabEmail = EmailET.getText().toString();
String grabPassword = PasswordET.getText().toString();
String grabCountry = CountryDrop.getSelectedItem().toString();
db.execSQL("Insert into Users_table (Forename, Surname, Email, Password, Country) values ((" + grabFirstname +"),(" + grabSurname +"),(" + grabEmail +"), (" + grabPassword +"), (" + grabCountry +"))");
Intent i=new Intent(Signup.this,Login.class);
startActivity(i);
}
});
在此先感謝。
你應該在你的助手類中做到這一點。添加一個方法,例如addValues(String grabFirstName,String grabSurename ....)等,並將其與內容值一起使用以將其添加到表中。 – Opiatefuchs
然後你不需要一直創建一個新的數據庫對象。在你的情況下,你得到這個錯誤,因爲你沒有定義分貝 – Opiatefuchs
你有你初始化'db'與'context'第一個... – Mohit