如果用户想要更改密码,我需要更新我的密码表... 我怎么做.. 我自己尝试过,但应用程序意外停止了..
这里是 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();
}
我在这里做错了什么?请解释..我似乎无法弄明白!
答案 0 :(得分: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();
}