gpt4 book ai didi

java - 如何将单个字段的数据获取到 SQLite 数据库的变量中?

转载 作者:行者123 更新时间:2023-12-01 17:37:45 26 4
gpt4 key购买 nike

我正在开发我的第一个 Android 应用程序,并设置了一个 SQLite 数据库并使用它,我已经能够成功使用游标来检索一些数据,并使用 SimpleCursorAdapter 使数据显示为列表。

我现在希望检索特定字段将结果放入浮点变量。然而,我在网上找到的所有示例似乎都希望您能够处理具有多行/列的大型检索,并且它们都已改编为列表或数组。 我不知道如何将该字段的内容放入变量中。

我尝试使用 myVariable =cursor.getFloat(0) 我认为这是正确的,但我也无法让它工作。

每次运行我的应用程序时,我都会遇到空指针异常错误,我尝试了一些try catch block ,但总的来说我对这一切都很陌生,并且尚未成功排除故障。这可能是一个简单的问题,例如查询拼写错误..

我将在下面包含一些涉及的代码,但欢迎任何一般或具体的建议,感谢您花时间查看。

public void Main(){

//gets the rowId we put with the intent from Budget.java, sets a default value of -1 'incase.
selectedRowId = getIntent().getLongExtra("rowId", -1);
Cursor costCursor= FindBudgetForId(selectedRowId);
MyText(costCursor, selectedRowId);

}

public Cursor FindBudgetForId(long selectedRowId){

SQLiteDatabase db = budgetData.getWritableDatabase();
String rowBudgetQuery = "SELECT BUDGET_AMOUNT FROM CAT_BUD_TAB WHERE _ID="+ selectedRowId;
Cursor c = db.rawQuery(rowBudgetQuery,null);
startManagingCursor(c);
return c;


}

public void MyText(Cursor costCursor, long selectedRowId){
TextView whatDoText=(TextView)this.findViewById(R.id.keypad_text);
whatDoText.setText("row: " +(String.valueOf(selectedRowId)));
//set the current budget amount in the edit text box
retrievedAmount = costCursor.getFloat(3);
EditText inputHint=(EditText)this.findViewById(R.id.cost_input);
inputHint.setText((String.valueOf(retrievedAmount)));

}

最佳答案

我相信,当 SqliteDatabase#rawQuery 返回 Cursor 时,它最初位于第一个结果之前。因此,为了实际从获得的结果中读取值(而不获取 NullPointerExceptionExplosionDeath),请在获取 float 之前调用 cursor.moveToFirst() 。我以前也被这个问题困扰过。

关于java - 如何将单个字段的数据获取到 SQLite 数据库的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com