Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Estou com dúvida no curso de Android: Aplicações e armazenamento de dados, no exercício do capítulo Persistência com SQLite.

Quando tento inserir um registro no banco me aparece essa mensagem.

10-10 21:54:39.539: E/SQLiteLog(1276): (1) table Alunos has no column named enderece
10-10 21:54:39.619: E/SQLiteDatabase(1276): Error inserting site=sdfsdfs nome=sdfsf nota=0.0 foto=null enderece=dfsdfs telefone=1123
10-10 21:54:39.619: E/SQLiteDatabase(1276): android.database.sqlite.SQLiteException: table Alunos has no column named enderece (code 1): , while compiling: INSERT INTO Alunos(site,nome,nota,foto,enderece,telefone) VALUES (?,?,?,?,?,?)
10-10 21:54:39.619: E/SQLiteDatabase(1276):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

Porém, não foi criado nenhuma coluna com chamada named, ou enderece.

Segue código de criação do banco:

@Override
    public void onCreate(SQLiteDatabase db) {

        String ddl = "CREATE TABLE Alunos (" +
                "id PRIMARY KEY," +
                "nome TEXT UNIQUE NOT NULL," +
                "telefone TEXT," +
                "endereco TEXT," +
                "site TEXT," +
                "foto TEXT," +
                "nota REAL" +
                ");";

        Log.i("Log Create", ddl);

        db.execSQL(ddl);

    }
4 respostas

Repare que na mensagem está: table Alunos has no column named enderece

Tecle Ctrl H no Eclipse e mande buscar "enderece" nos seus arquivos.

Artur, o SQL está avisando que não encontrou nenhuma coluna enderece na tabela. Note que seu script está assim: INSERT INTO Alunos(site,nome,nota,foto,enderece,telefone) VALUES (?,?,?,?,?,?)

Quando deveria ser assim

INSERT INTO Alunos(site,nome,nota,foto,**endereco**,telefone) VALUES (?,?,?,?,?,?)

solução!
INSERT INTO Alunos(site,nome,nota,foto,**endereco**,telefone) VALUES (?,?,?,?,?,?)

o nome da coluna deve ser "endereco"