数组未在SQLite中转换为字符串

时间:2014-03-11 14:53:12

标签: android arrays sqlite

我正在尝试从sqlite中删除一个值,我正在重新检索要从数组中删除的值。

这是整个问题,因为当我在delete语句中使用它时,它以数组格式而不是String格式显示。

代码:

deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a)+"'";
System.out.println(deletestock);
//Database.getInstance(getApplicationContext()).getWritableDatabase().delete(st.tablename, st.column3 + "=" + abc, null);
Database.getInstance(getApplicationContext()).getWritableDatabase().rawQuery(deletestock, null);

数组解析     ArrayList a = new ArrayList(); 上面的代码populatestock.a是数组

但是logcat是这样的:

Delete from abc Where StockName = '[sdfd]'

但我需要

Delete from abc Where StockName = 'sdfd'

请帮我解决此问题

4 个答案:

答案 0 :(得分:2)

你可以试试这个:

deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a).subString(1, String.valueOf(populatestocks.a).length()-1)+"'";

应该返回你需要的东西。

答案 1 :(得分:0)

使用它来获取ArrayList中第一个位置的内容(如果populatestocks.a是你的ArrayList):

populatestocks.a.get(0)
你的代码中的

deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '" + populatestocks.a.get(0) + "'";

答案 2 :(得分:0)

tl; dr populatestocks.a应为populatestocks.a[0]

您的问题意味着您有一个长度为1的数组,并且您希望字符串连接能够识别它并将其视为单个值。它不会像这样工作,因为即使只有一个元素,它仍然是一个数组,而不是一个值,并被视为这样。

答案 3 :(得分:0)

您正在声明一个ArrayList,因此您需要使用get(index)而不是[]。

因此,您的代码应如下所示:

String.valueOf(populatestocks.a.get(0))

See also javadoc on ArrayList