Как установить эту переменную SQlite равной 0?

У меня есть следующий код, который можно найти по сети в базе данных SQLite:

public void alta(View v) {
    AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,"administracion", null, 1); //Creamos instancia llamada Admin
    SQLiteDatabase bd = admin.getWritableDatabase(); //Creamos base de datos y writable para decir que es totalmende modificable

    String dni = et1.getText().toString();
    String nombre = et2.getText().toString();
    String colegio = et3.getText().toString();
    String nromesa = et4.getText().toString();

    ContentValues registro = new ContentValues();  //Clase para guardar datos

    //LO QUE HAY ENTRE COMILLAS ES LO MISMO LLAMADA EN LA CLASE SQLITE DE JAVA,IMPORTANTE LOS NOMBRES.
    registro.put("dni", dni);
    registro.put("nombre", nombre);
    registro.put("colegio", colegio);
    registro.put("nromesa", nromesa);

    bd.insert("votantes", null, registro); //null siempre por defecto
    bd.close(); //Cerramos si no da problemas.

    et1.setText("");
    et2.setText("");
    et3.setText("");
    et4.setText("");

    Toast.makeText(this, "Se cargaron los datos de la persona",
            Toast.LENGTH_SHORT).show(); //CARTEL TOAST PARA AVISAR A USER. 
}

public void consulta(View v) {
    AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
            "administracion", null, 1);
    SQLiteDatabase bd = admin.getWritableDatabase(); //Create and/or open a database that will be used for reading and writing.

    String dni = et1.getText().toString();//Me interesa solo dni porque es lo que voy a consultar

    Cursor fila = bd.rawQuery(  //devuelve 0 o 1 fila //es una consulta
            "select nombre,colegio,nromesa  from votantes where dni=" + dni, null);
    if (fila.moveToFirst()) {  //si ha devuelto 1 fila, vamos al primero (que es el unico)
        et2.setText(fila.getString(0));
        et3.setText(fila.getString(1));
        et4.setText(fila.getString(2));
    } else
        Toast.makeText(this, "No existe una persona con dicho dni" ,
                Toast.LENGTH_SHORT).show();
    bd.close(); //Cerramos la base
}

Моя проблема в if (fila.moveToFirst()), которая находится в функции запроса. Эта функция просто читает то, что я положил в DNI и возвращает данные, если они есть.

Все, что я хочу знать, как это получается, если DNI пуст. Что положить внутрь этого if ( ), чтобы прочитать меня, если DNI пуст.

0
задан 29.12.2016, 01:44
2 ответа

Я не понимаю очень хорошо, который ты имеешь в виду, если Dni пустой тогда консультация, он не возвратит тебе никакой линии: нет? и тебе дает ошибку кусок кода:

if (fila.moveToFirst()) {  //si ha devuelto 1 fila, vamos al primero (que es el unico)
        et2.setText(fila.getString(0));
        et3.setText(fila.getString(1));
        et4.setText(fila.getString(2));
    }

то, что ты можешь делать, состоит в том, чтобы помещать следующее:

if (fila.moveToFirst())
    while (!fila.isAfterLast()) {
        et2.setText(fila.getString(0));
        et3.setText(fila.getString(1));
        et4.setText(fila.getString(2));
    }
}

Таким образом, если твоя консультация не возвратит линии, он не даст ошибку, попробовав получать данные, соответствующие колоннам.

Если это не это, что ты имеешь в виду, ты мог бы определять меня немного более каков это проблема.

0
ответ дан 24.11.2019, 13:24
  • 1
    У меня есть два поля, удостоверение личности и ИМЯ. В c и # 243; я говорю, что оригинал - c и # 243; я говорю, что я поместил наверху. Я помещаю удостоверение личности и ищу, и если он находит совпадение, возвратите мне имя. То, что я хочу, состоит в том, чтобы оставлять удостоверение личности vac и # 237; или, и что, щелкнув в консультировании, в detect и # 225; rmelo vac и # 237; или возвратите мне имя. А именно, что не было надо помещать ning и # 250; n удостоверение личности. – Rf Mvs 13.09.2016, 19:01
  • 2
    То, что я хочу, (с полем удостоверения личности vac и # 237; или, всегда) сохранять имя, острие в " alta" и сохраняют я. Despu и # 233; s во время искания этого (с полем удостоверение личности vac и # 237; o) я щелкаю в консультировании и меня вытекли вышеупомянутое имя. Я это хочу. – Rf Mvs 13.09.2016, 19:07
  • 3
    Но если ты консультируешься с Dni vac и # 237; или ты saldr и # 225; n все имена, у которых есть Dni vac и # 237; или, так как консультация, которую ты поместил ты возвращать и # 225; все те, которые выполняют этот condici и # 243; n если только s и # 243; это будешь иметь один с Dni vac и # 237; или каждый раз. Равный то, что быть должным, и # 237; эксперт делать значило бы менять консультацию и консультироваться по имени или из-за идентификации (если ты поместил какой-либо в таблицу) и потом уже, когда ты захочешь распределить ему Dni – Joacer 14.09.2016, 10:28
  • 4
    И как делать тогда Joacer, который читал бы определенную цепь? А именно, что в удостоверении личности всегда и всегда читал например n и # 250; морской окунь 5667, внутри if, который я должен помещать? То, что я хочу, состоит в том, чтобы он читал что-то всегда. – Rf Mvs 14.09.2016, 18:19

Что помещать внутри этого if () для того, чтобы он прочитал мне, если удостоверение личности пустое?.

Тот же метод moveToFirst () курсора показывает тебе, что, если он двинулся, существуют данные, другой формы курсор я опустошаю эту.

moveToFirst (): Этот метод возвращается фальшиво, если эта я опустошаю курсор.

Следовательно, что ты желаешь уже, ты это реализуешь:

if (fila.moveToFirst()) { 
//Encuentra datos.
} else{
//Vacio, NO encuentra datos.
}
0
ответ дан 24.11.2019, 13:24
  • 1
    У меня есть два поля, удостоверение личности и ИМЯ. В c и # 243; я говорю, что оригинал - c и # 243; я говорю, что я поместил наверху. Я помещаю удостоверение личности и ищу, и если он находит совпадение, возвратите мне имя. То, что я хочу, состоит в том, чтобы оставлять удостоверение личности vac и # 237; или, и что, щелкнув в консультировании, в detect и # 225; rmelo vac и # 237; или возвратите мне имя. А именно, что не было надо помещать ning и # 250; n удостоверение личности. – Rf Mvs 13.09.2016, 19:01
  • 2
    Я этим обменялся, этим else в if и это от if до else, и когда я сохраняю informaci и # 243; n и despu и # 233; s я обсуждаю ее ВСЕГДА с удостоверением личности vac и # 237; или, у меня выходит ошибка и выходят у меня из aplicaci и # 243; n – Rf Mvs 13.09.2016, 19:01