Java SQLITE数据库更新函数找不到行ID?

Java SQLITE数据库更新函数找不到行ID?,java,android,database,sqlite,Java,Android,Database,Sqlite,我试图更新一个用户的“现金堆栈”,当该用户点击使用他们在游戏中的货币时。到目前为止,我发现用户的ID应该是6,但是当我尝试在数据库更新函数中使用这个硬编码值时,我得到了一个null对象引用错误。有人能帮我理解为什么这个值不正确吗?我在安卓工作室工作,使用SQLite 正在使用的函数:public void updateCashStack(int newCashStack){..}(见下文),fiveDollar.setOnClickListener(..) 我如何找到身份证号码: int las

我试图更新一个用户的“现金堆栈”,当该用户点击使用他们在游戏中的货币时。到目前为止,我发现用户的ID应该是6,但是当我尝试在数据库更新函数中使用这个硬编码值时,我得到了一个
null
对象引用错误。有人能帮我理解为什么这个值不正确吗?我在安卓工作室工作,使用SQLite

正在使用的函数:
public void updateCashStack(int newCashStack){..}
(见下文),
fiveDollar.setOnClickListener(..)

我如何找到身份证号码:

int lastID = 0;
for (int i = 0; i < 10; i++) {
    if(userIDs[i] != 0) {
        lastID = userIDs[i];
        Toast.makeText(ChoosePokerStyle.this, "User ID = " + lastID, Toast.LENGTH_LONG).show( );
    }
}
}

fiveDollar.setOnClickListener
code:

fiveDollar.setOnClickListener(new View.OnClickListener( ) {
    @Override
    public void onClick(View v)
    {
       int five = 5;
       int cashStackAsInt = Integer.parseInt(cashStack);
       cashStackAsInt = cashStackAsInt - five;
       userCashStackPrompt.setText(Integer.toString(cashStackAsInt));
       myDB.updateCashStack(cashStackAsInt);
       Toast.makeText(ChoosePokerStyle.this, "You have bet $5", Toast.LENGTH_LONG).show( );
    }
}

在您的表中没有标题为
id
的列。它应该是
ID
。尝试以下方法:

whereClause = "ID = ?";

SQL中的语法不区分大小写,但在数据库定义列
String COL1=“ID”它与
字符串whereClause=“id=?”不匹配

您可以使用
String whereClause=COL1+“=?”
字符串whereClause=“ID=?”

希望这有帮助

我得到一个空对象引用错误

最可能的原因是myDB的范围内实例化实例不存在

您可以通过在行上放置断点来检查这一点

db.update(TABLE_NAME, values, whereClause, new String[] {"6"}); 
在DatabaseHelper.java中

然后在调试模式下运行(例如,单击绿色错误)。 当调试窗口出现时,检查变量

猜测db为空。如果是这样,您需要确保已实例化myDB,并且调用在myDB的范围内(例如,在类级别声明myDB,并在活动的onCreate方法或片段的等效方法中实例化它)


有关调试的更多信息,请参阅。

在第
db.update行(表名称、值、whereClause、新字符串[]{“6”)中添加断点。在调试模式下运行(例如,单击绿色错误)。当调试窗口出现时,检查变量。猜测db为空。如果是这样,您需要确保myDB已经实例化,并且acll在myDB的范围内。有关调试/断点的更多详细信息,请参阅Yay!!这成功了!!非常感谢您,我将在未来的编程中更多地使用调试模式GG!那很好。我已经添加了上面的答案。请您勾选这个作为答案。@BickeringVmax,您勾选了吗?
db.update(TABLE_NAME, values, whereClause, new String[] {"6"});