0

我有一个表,其列有数字:

表名“Valores”

id Nombre 11 18 12.3
01 Juan 10 08 15
02 Rosa 23 51 61
03 Pepe 35 18 11

我想知道您在列中选择了任何名称的金额。第 12.3 列中 Rosa 的示例是 61。我做了以下陈述:

columna = (EditText) findViewById(R.id.eT_columna);
valor = (EditText) findViewById(R.id.eT_valor);
String stColumna = columna.getText().toString();

    public void consulta (View v){

       //Determinación del valor
        Cursor fila_valores = bd_valores.rawQuery(
                "select "+ stColumna + " from Valores where Nombre", null);
        if (fila_valores.moveToFirst()) {
            valor.setText(fila_valores.getString(0));
        }
        bd_valores.close();
    }

运行我得到的应用程序,结果为 12.3(正确值 61)。我的错误是什么?谢谢(对不起我的英语)

4

3 回答 3

0

我找到了解决问题的方法:

columna = (EditText) findViewById(R.id.eT_columna);
Nombre = (EditText) findViewById(R.id.eT_Nombre);
valor = (EditText) findViewById(R.id.eT_valor);
String stColumna = columna.getText().toString();
String stNombre = Nombre.getText().toString();

    public void consulta (View v){

       //Determinación del valor
        Cursor fila_valores = bd_valores.rawQuery(
                "select "+ '"' + stColumna +'"'+ " from Valores where Nombre=" + "'"+stNombre+"'", null);
        if (fila_valores.moveToFirst()) {
            valor.setText(fila_valores.getString(0));
        }
        fila_valores.close();
    }

感谢您的帮助。

于 2015-02-21T05:36:21.037 回答
0
SELECT 12.3

选择数字文字12.3而不是列12.3。要选择列,请引用标识符:

SELECT "12.3"

例子:

sqlite> create table a("12.3");
sqlite> insert into a select 45.6;
sqlite> select 12.3 from a;
12.3
sqlite> select "12.3" from a;
45.6

此外,您where Nombre的内容几乎毫无意义。

于 2015-02-12T06:15:06.090 回答
0

您忘记在查询中输入条件值(即 Rosa)。

select "+ stColumna + " from Valores where Nombre = 'Rosa'
于 2015-02-12T02:50:18.807 回答