SQLite rawQuery Select 标题为实数的列
SQLite rawQuery Select columns whose titles are real numbers
我有一个 table 其列有数字:
Table姓名"Valores"
身份证号码 11 18 12.3
01 转 10 08 15
02 罗莎 23 51 61
03 佩佩 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)。我的错误是什么?谢谢(对不起我的英语)
您忘记在查询中输入条件值(即 Rosa)。
select "+ stColumna + " from Valores where Nombre = 'Rosa'
SELECT 12.3
select 是数字文字 12.3
而不是列 12.3
。对于 select 列,引用标识符:
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
本身就毫无意义。
我找到了问题的解决方案:
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();
}
感谢您的帮助。
我有一个 table 其列有数字:
Table姓名"Valores"
身份证号码 11 18 12.3
01 转 10 08 15
02 罗莎 23 51 61
03 佩佩 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)。我的错误是什么?谢谢(对不起我的英语)
您忘记在查询中输入条件值(即 Rosa)。
select "+ stColumna + " from Valores where Nombre = 'Rosa'
SELECT 12.3
select 是数字文字 12.3
而不是列 12.3
。对于 select 列,引用标识符:
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
本身就毫无意义。
我找到了问题的解决方案:
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();
}
感谢您的帮助。