-1
我正在試圖製作一個簡單的界面,用於查詢用戶的用戶名。它發現它是否已經存在於SQLite
數據庫中。在logCat中發現創建的數據庫丟失
我創建了數據庫,但LogCat
告訴我,我在查詢中要求的表不存在(No such table
)。
這就是我創建了簡單的數據庫類DataBaseHelper
:
package com.example.cinemaodeon;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "nome_db";
private static final int DB_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// Creazione delle tabelle
String sql = "";
sql += "DROP TABLE IF EXISTS T_UTENTI";
db.execSQL(sql);
sql ="";
sql += "CREATE TABLE T_UTENTI(";
sql += " _id_user INTEGER PRIMARY KEY,";
sql += " username TEXT NOT NULL";
sql += " password TEXT NOT NULL";
sql += ")";
db.execSQL(sql);
sql = "";
sql +="COMMIT";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Aggiornamento delle tabelle
}
}
我想用一個按鈕的點擊查詢閱讀。 下面是該活動的代碼:
package com.example.cinemaodeon;
import......
public class Main extends Activity {
private DatabaseHelper DbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DbHelper = new DatabaseHelper(this);
setContentView(R.layout.layout_main);
final Toast toast = Toast.makeText(this,
"Il nome utente non è presente!!! registra un nuovo nome utente!",
Toast.LENGTH_LONG);
final Toast toast2 = Toast.makeText(this,
"Il nome utente è già presente!!! Accedi con questo nome utente!",
Toast.LENGTH_LONG);
Button btnGO = (Button) findViewById(R.id.main_btnentra);
btnGO.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
EditText editusername =(EditText) findViewById(R.id.main_editusername);
final String username = editusername.getText().toString();
下面的代碼是返回錯誤No such table T_UTENTI
查詢。
SQLiteDatabase db = DbHelper.getReadableDatabase();
String[] columns = {"username"};
Cursor cursor = db.query("T_UTENTI", columns, null, null, null, null, null);
boolean ctrl=false;
while (cursor.moveToNext()) {
if (username==cursor.getString(0)){
ctrl=true;
Intent openProgrammazione = new Intent(Main.this,Programmazione.class);
startActivity(openProgrammazione);
break;
}
}
if (ctrl==false){
toast.show();
}
}
});
Button btnReg = (Button) findViewById(R.id.main_btnregistra);
btnReg.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
EditText editusername =(EditText) findViewById(R.id.main_editusername_registra);
final String username = editusername.getText().toString();
SQLiteDatabase db = DbHelper.getReadableDatabase();
String[] columns = { "username" };
Cursor cursor = db.query("T_UTENTI", columns, null, null, null, null, null);
boolean ctrl=false;
while (cursor.moveToNext()) {
if (username==cursor.getString(0)){
toast2.show();
ctrl=true;
break;
}
}
if (ctrl==false){
WriteUser(username);
Intent openProgrammazione = new Intent(Main.this,Programmazione.class);
startActivity(openProgrammazione);
}
}
});
}
protected void WriteUser(String user){
SQLiteDatabase dbw = DbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("username", user);
values.put("password","0000");
@SuppressWarnings("unused")
long id = dbw.insert("T_UTENTI", null, values);
}