0

我正在使用 SQLite 数据库在我的应用程序中插入、创建或更新数据。我想更改我的 SQLite 数据库中的密码。我在我的应用程序中更改密码时遇到问题。当我运行演示并输入那里的任何字段并点击按钮以更改数据库中的数据时,它会进入其他条件。在 log cat 中没有显示任何错误或异常。有没有办法做到这一点?这是我的代码。

这是我的 DBHelper 类

public class DataBaseHelper extends SQLiteOpenHelper
{

public DataBaseHelper(Context context, String name,CursorFactory factory, int version) 
    {
               super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase _db) 
    {
            _db.execSQL(DataBase_Adapter.DATABASE_CREATE_LOGIN);
     }

    @Override
    public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) 
    {
            // Log the version upgrade.
      Log.w("TaskDBAdapter", "Upgrading from version " +_oldVersion + " to "+_newVersion + ", which will destroy all old data");

           _db.execSQL("DROP TABLE IF EXISTS " + "TEMPLATE");

            onCreate(_db);
    }

}

此 DataBaseAdapter 类代码

 public static final String TABLE_NAME_LOGIN="LOGIN";

        //Colum,n Names
        public static final String KEY_LOGIN_ID="ID";
        public static final String KEY_USERNAME="USERNAME";
        public static final String KEY_EMAIL_ID="EMAILID";
        public static final String KEY_PASSWORD="PASSWORD";


        //Table Create Statement 
        public static final String DATABASE_CREATE_LOGIN = "CREATE TABLE "+TABLE_NAME_LOGIN+" ("+KEY_LOGIN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+KEY_USERNAME+" TEXT, "+KEY_EMAIL_ID+" TEXT, "+KEY_PASSWORD+" TEXT)";


 //Insert Data in Database Login
        public void insertEntry(String userName,String userEmail,String password)
        {
           ContentValues newValues = new ContentValues();
            // Assign values for each row.
            newValues.put(KEY_USERNAME , userName);
            newValues.put(KEY_EMAIL_ID , userEmail);
            newValues.put(KEY_PASSWORD , password);

            // Insert the row into your table
            db.insert(TABLE_NAME_LOGIN, null, newValues);

        }


//Update Query

        public boolean change(String strEmailId , String strNewPin1 )
        {

            Cursor cur=db.rawQuery("UPDATE "+TABLE_NAME_LOGIN +" SET " + KEY_PASSWORD+ " = '"+strNewPin1+"' WHERE "+ KEY_EMAIL_ID +"=?", new String[]{strEmailId});

            if (cur != null)
            {           
                if(cur.getCount() > 0)
                {
                    return true;
                }
            }
            return false;
        }

这是我的更改图钉活动

public class Change_Pin_Activity7 extends Activity
{
    EditText editText_EmailId , editText_changePin1 , editText_changePin2;
    Button buttonChangePin;
    TextView textView_PasswordMatch;

    String strEmailId , strNewPin1 , strNewPin2;
    boolean storedNewData;

    DataBase_Adapter dbAdapter;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.change_pin_activity7);

        dbAdapter=new DataBase_Adapter(this);
        dbAdapter=dbAdapter.open();

        editText_EmailId=(EditText)findViewById(R.id.EditText_EmailId);
        editText_changePin1=(EditText)findViewById(R.id.EditText_Pin1);
        editText_changePin2=(EditText)findViewById(R.id.EditText_Pin2);

        textView_PasswordMatch=(TextView)findViewById(R.id.TextView_PinProblem);

        buttonChangePin=(Button)findViewById(R.id.button_ChangePin);
        buttonChangePin.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                strEmailId = editText_EmailId.getText().toString().trim();
                strNewPin1 = editText_changePin1.getText().toString().trim();
                strNewPin2 = editText_changePin2.getText().toString().trim();

                storedNewData=dbAdapter.change(strEmailId , strNewPin1);

                if (strNewPin1.equals(storedNewData)) 
                {

                    textView_PasswordMatch.setText("Password Match !!!");

                    Toast.makeText(Change_Pin_Activity7.this,
                            "Pin Change Successfully", Toast.LENGTH_LONG).show();
                }

                // check if any of the fields are vaccant
                if(strEmailId.equals("")||strNewPin1.equals("")||strNewPin2.equals(""))
                {
                        Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show();
                        return;
                }

                // check if both password matches
                if(!strNewPin1.equals(strNewPin2))
                {
                    Toast.makeText(getApplicationContext(), "Pin does not match", Toast.LENGTH_LONG).show();
                    return;
                }

                else
                {
                    Toast.makeText(getApplicationContext(),"Not Working ", Toast.LENGTH_LONG).show();

                }

            }
        });

    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Close The Database
        dbAdapter.close();
    }

}
4

1 回答 1

0

什么if (strNewPin1.equals(storedNewData))时候会成功,ifstrNewPin1是 a String,并且storedNewData是 a boolean

于 2013-11-07T08:54:11.293 回答