0

ユーザーがパスワードを変更したい場合は、パスワードテーブルを更新する必要があります...どうすればいいですか..自分でやろうとしましたが、アプリが予期せず停止しました..

これがchangepassword.javaです

public void insertvalues()
{
    prefEditor.putString("Oldpin", Oldpin);
    prefEditor.putString("Newpin", Newpin);
    prefEditor.putString("Confirm", Confirm);


    prefEditor.commit();

    try
    {

        WayDataBase way=new WayDataBase(getApplicationContext());


        way.updatePin(Newpin,Oldpin);



    }

ここにupdatePin関数があります

public void updatePin(String newpin,String oldpin)
{
    openOrCreateDatabase();
    db.execSQL("UPDATE"+pinTable+"set Pin="+newpin+"where Pin="+oldpin+");");

    closeDatabase();
}

ここで何が間違っていますか?? Plsは説明します..私はそれを理解できないようです!

4

1 に答える 1

0

以下のコードにはスペースがないようです

public void updatePin(String newpin,String oldpin)
{
   openOrCreateDatabase();
   db.execSQL("UPDATE"+pinTable+"set Pin="+newpin+"where Pin="+oldpin+");");

   closeDatabase();
}

こういうのがあれば良いのでは?

public void updatePin(String newpin,String oldpin)
{
   openOrCreateDatabase();
   db.execSQL("UPDATE "+pinTable+" SET Pin='"+newpin+"' where Pin='"+oldpin+"'");

   closeDatabase();
}

追加したスペースとは別に、データベースの Pin フィールド/列が String または Text データ型である場合は、一重引用符も追加しました。それ以外の場合は、整数などの数値の場合は、以下のように単一引用符を再度削除してください。

public void updatePin(String newpin,String oldpin)
{
   openOrCreateDatabase();
   db.execSQL("UPDATE "+pinTable+" SET Pin= "+newpin+" where Pin="+oldpin);

   closeDatabase();

}

また、あなたのタイプミスかどうかもわかりません。しかし、「);」を追加する必要がありますか? oldpin+ の後 ? ちなみに、SQL文字列を別の変数に分けることをお勧めします。そうすれば、以下のようなエラーの文字列自体を簡単にデバッグできます。

public void updatePin(String newpin,String oldpin)
{
   String sql = "UPDATE "+pinTable+" SET Pin= "+newpin+" where Pin="+oldpin;
   openOrCreateDatabase();
   db.execSQL(sql);

   closeDatabase();

}
于 2013-04-06T12:57:06.073 に答える