我希望根據數據庫中已存在的表來查詢我的用戶名。但是,當我執行我的代碼,我的應用程序強制關閉是由於「SQLite的返回錯誤代碼:1,味精=近‘=’:語法錯誤在打開之前在SQLite中創建數據庫
這裏是DBAdapter.java文件
package com.example.usernammepassword;
import android.content.ContentValues;
public class DBAdapter {
public static final String KEY_NAME = "UserName";
public static final String KEY_PASS = "Password";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "Test";
private static final String DATABASE_TABLE = "UsernamePassword";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE =
"create table if not exists UsernamePassword (UserName text not null primary key, Password text not null);";
private final Context context;
DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db1) {
try {
db1.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public DBAdapter open() throws SQLException {
public void close() {
public long insertNewUser(String UserName, String Password) {
public boolean deleteUser(String UserName)
public Cursor getAllUserNamesAndPasswords()
{
return db.query(DATABASE_TABLE, new String[] { KEY_NAME,
KEY_PASS}, null, null, null, null, null);
}
public Cursor getPasswordForUserName(String UserName) throws SQLException
public boolean updatePasswordForUserName(String UserName, String Password) {
}
而且MainActivity.java文件
package com.example.usernammepassword;
import android.os.Bundle;
public class MainActivity extends Activity {
private String md5(String in) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText text = (EditText)findViewById(R.id.editText1);
EditText text1 = (EditText)findViewById(R.id.editText2);
String userid = text.getText().toString();
String pass = text1.getText().toString();
Toast.makeText(MainActivity.this,"Entered "+userid+" and password entered is "+pass,Toast.LENGTH_LONG).show();
pass = md5(pass + "@string/salt");
Toast.makeText(MainActivity.this,"Password after adding a salt and md5 hashing is now equal to " + pass,Toast.LENGTH_LONG).show();
DBAdapter db = new DBAdapter(MainActivity.this);
db.open();
Cursor c = db.getPasswordForUserName(userid);
if(c.moveToFirst())
{
if(c.getString(1) == pass)
{
Toast.makeText(MainActivity.this, "Authentication Succeded", Toast.LENGTH_SHORT).show();
//proceed
}
else
{
Toast.makeText(MainActivity.this, "@string/AuthFail", Toast.LENGTH_SHORT).show();
//AuthFailure
}
}
else
{
Toast.makeText(MainActivity.this,"@string/UserNotFound", Toast.LENGTH_SHORT).show();
//where to from here
}
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
}
的Logca T:
是的,它沒有因爲「沒有這樣的桌子」而崩潰,但由於其他原因,我現在將修復:) 非常感謝。你能否也請解釋爲什麼這有所作爲? @Hoan – tMJ 2013-03-08 00:12:00