Error while listing SQLite direct table

0

asked by anonymous 15.11.2018 / 21:47

2 answers

0

I think your problem is very clear, in the line of your stacktrace:

Caused by: android.database.sqlite.SQLiteException: no such table: produtos

In other words, the products table does not exist so the select in it returns an exception.

    
15.11.2018 / 22:21
0

The problem you're missing in creating the table and columns. You are placing the variable TABLE_PRODUCTS in quotation marks. Pay attention to the names of the tables and columns, you need to uninstall and reinstall the app. See this tutorial here. link

public class DBHelper extends SQLiteOpenHelper {

private static final int VERSAO_BANCO = 1;
private static final String NOME_BANCO = "CONTROLE_DE_ESTOQUE";
private static final String TABELA_PRODUTOS = "produtos";
private static final String TABELA_USUARIOS = "usuarios";
private static final String ID = "_id";
private static final String DESCRICAO = "descricao";
private static final String CATEGORIA = "categoria";
private static final String UNIDADEMEDIDA = "unidadeMedida";
private static final String ESTOQUE_ATUAL = "estoqueAtual";
private static final String ESTOQUE_MINIMO = "estoqueMinimo";
private static final String VALOR_CUSTO = "valorCusto";
private static final String VALOR_VENDA = "valorVenda";
private static final String[] COLUNAS = {TABELA_PRODUTOS};

private static final String TABELA_FORNECEDORES = "fornecedores";
private static final String ID_FORNECEDOR = "_id";
private static final String RAZAO_SOCIAL = "razaoSocial";
private static final String CNPJ = "cnpj";
private static final String INSCRICAO_ESTADUAL = "inscricaoEstadual";
private static final String TELEFONE = "telefone";
private static final String ENDERECO = "endereco";
private static final String[] COLUNAS_FORNECEDOR = {TABELA_FORNECEDORES};


public DBHelper(Context context) {
    super(context, NOME_BANCO, null, VERSAO_BANCO);
}

@Override
public void onCreate(SQLiteDatabase db) {

    String QUERY_USUARIO = "CREATE TABLE "+ TABELA_USUARIOS +"("+ID +" integer primary key autoincrement, nomeUsuario TEXT, senha TEXT);";
    db.execSQL(QUERY_USUARIO);
    Log.d("TAB","criou usuario");

    String QUERY_PRODUTO = "CREATE TABLE "+TABELA_PRODUTOS +"(" + ID+" integer primary key autoincrement, descricao TEXT, categoria TEXT," +
            " unidadeMedida TEXT, valorCusto TEXT, valorVenda TEXT, estoqueAtual TEXT, estoqueMinimo TEXT);";
    db.execSQL(QUERY_PRODUTO);
    Log.d("TAB","criou produto");

    String QUERY_FORNECEDOR = "CREATE TABLE " +TABELA_FORNECEDORES +"("+ID_FORNECEDOR +" integer primary key autoincrement, razaoSocial TEXT, cnpj TEXT," +
            " inscricaoEstadual TEXT, telefone TEXT, endereco TEXT);";
    db.execSQL(QUERY_FORNECEDOR);
    Log.d("TAB","criou fornecedor");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS TABELA_USUARIOS;");
    onCreate(db);

}

public long CriarUsuario(String nomeUsuario, String senha) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("nomeUsuario", nomeUsuario);
    cv.put("senha", senha);
    long result = db.insert(TABELA_USUARIOS, null, cv);
    return result;
}

public Boolean ValidarUsuario(String nomeUsuario, String senha) {
    SQLiteDatabase db = getReadableDatabase();
    Cursor c = db.rawQuery("SELECT * FROM "+TABELA_USUARIOS +" WHERE nomeUsuario=? AND senha=?", new String[]{nomeUsuario, senha});
    if (c.getCount() > 0) {
        return true;
    }
    return false;
}

public long CriarProduto(Produto produto) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(DESCRICAO, produto.getDescricao());
    cv.put(CATEGORIA, produto.getCategoria());

    long result = db.insert(TABELA_PRODUTOS, null, cv);
    Log.d("TAB","inseriu "+produto.getDescricao());
    return result;
}

public Produto getProduto(int id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABELA_PRODUTOS, // a. tabela
            null, // b. colunas
            ID+"= ?", // c. colunas para comparar
            new String[] { String.valueOf(id) }, // d. parâmetros
            null, // e. group by
            null, // f. having
            null, // g. order by
            null); // h. limit
    if (cursor == null) {
        return null;
    } else {
        cursor.moveToFirst();
        Produto produto = cursorToProduto(cursor);
        return produto;
    }
}

private Produto cursorToProduto(Cursor cursor) {
    Produto produto = new Produto();
    produto.setId(Integer.parseInt(cursor.getString(0)));
    produto.setDescricao(cursor.getString(1));
    produto.setCategoria(cursor.getString(2));
    return produto;
}

public ArrayList<Produto> getAllProdutos() {
    ArrayList<Produto> listaProdutos = new ArrayList<Produto>();
    String query = "SELECT * FROM " + TABELA_PRODUTOS;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        do {
            Produto produto = cursorToProduto(cursor);
            listaProdutos.add(produto);
        } while (cursor.moveToNext());
    }
    return listaProdutos;
}

}

    
16.11.2018 / 12:46