import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
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 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};
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);
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);
}
@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 String 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 "OK";
}
return "ERRO";
}
public long CriarProduto(Produto produto) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DESCRICAO, produto.getDescricao());
cv.put(CATEGORIA, produto.getCategoria());
cv.put(UNIDADEMEDIDA, produto.getUnidadeMedida());
cv.put(ESTOQUE_ATUAL, produto.getEstoqueAtual());
cv.put(ESTOQUE_MINIMO, produto.getEstoqueMinimo());
cv.put(VALOR_CUSTO, produto.getValorCusto());
cv.put(VALOR_VENDA, produto.getValorVenda());
long result = db.insert("TABELA_PRODUTOS", null, cv);
return result;
}
public Produto getProduto(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABELA_PRODUTOS, // a. tabela
COLUNAS, // 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));
produto.setUnidadeMedida(cursor.getString(3));
produto.setValorCusto(Integer.parseInt(cursor.getString(4)));
produto.setEstoqueAtual(Integer.parseInt(cursor.getString(5)));
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;
}
public int updateProduto(Produto produto) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DESCRICAO, produto.getDescricao());
cv.put(CATEGORIA, produto.getCategoria());
cv.put(UNIDADEMEDIDA, produto.getUnidadeMedida());
cv.put(ESTOQUE_ATUAL, produto.getEstoqueAtual());
cv.put(ESTOQUE_MINIMO, produto.getEstoqueMinimo());
cv.put(VALOR_CUSTO, produto.getValorCusto());
cv.put(VALOR_VENDA, produto.getValorVenda());
int i = db.update(TABELA_PRODUTOS, //tabela
cv, // valores
ID+" = ?", // colunas para comparar
new String[] { String.valueOf(produto.getId()) }); //parâmetros
db.close();
return i; // número de linhas modificadas
}
public int deleteAluno(Produto produto) {
SQLiteDatabase db = this.getWritableDatabase();
int i = db.delete(TABELA_PRODUTOS, //tabela
ID+" = ?", // colunas para comparar
new String[] { String.valueOf(produto.getId()) });
db.close();
return i; // número de linhas excluídas
}
This is my Database class.
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class CadastroProduto extends AppCompatActivity {
Spinner spnFornecedor, spnUMedida;
EditText edtDescricao, edtCategoria, edtVCusto, edtVVenda, edtEAtual, edtEMinimo;
Button btnNFornecedor, btnCadastrar02;
DBHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastro_produto);
db = new DBHelper(this);
spnFornecedor = (Spinner) findViewById(R.id.spnFornecedor);
spnUMedida = (Spinner) findViewById(R.id.spnUMedida);
edtDescricao = (EditText) findViewById(R.id.edtDescricao);
edtCategoria = (EditText) findViewById(R.id.edtCategoria);
edtVCusto = (EditText) findViewById(R.id.edtVCusto);
edtVVenda = (EditText) findViewById(R.id.edtVVenda);
edtEAtual = (EditText) findViewById(R.id.edtEAtual);
edtEMinimo = (EditText) findViewById(R.id.edtEMinimo);
btnNFornecedor = (Button) findViewById(R.id.btnNFornecedor);
btnCadastrar02 = (Button) findViewById(R.id.btnCadastrar02);
ArrayAdapter adapterUM = ArrayAdapter.createFromResource (this,R.array.unidade_medida, android.R.layout.simple_spinner_item);
spnUMedida.setAdapter(adapterUM);
btnCadastrar02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Produto produto = new Produto();
//String fornecedor = spnFornecedor.getSelectedItem().toString();
/*produto.setUnidadeMedida(spnUMedida.getSelectedItem().toString());
produto.setDescricao(edtDescricao.getText().toString());
produto.setCategoria(edtCategoria.getText().toString());
produto.setValorCusto (Double.parseDouble(edtVCusto.getText().toString()));
produto.setValorVenda(Double.parseDouble(edtVVenda.getText().toString()));
produto.setEstoqueAtual(Integer.parseInt(edtEAtual.getText().toString()));
produto.setEstoqueMinimo(Integer.parseInt(edtEMinimo.getText().toString()));*/
String unidadeMedida = spnUMedida.getSelectedItem().toString();
String descricao = edtDescricao.getText().toString();
String categoria = edtCategoria.getText().toString();
String valorCusto = edtVCusto.getText().toString();
String valorVenda = edtVVenda.getText().toString();
String estoqueAtual = edtEAtual.getText().toString();
String estoqueMinimo = edtEMinimo.getText().toString();
if (descricao.equals("") || categoria.equals("") || valorCusto.equals("") || valorVenda.equals("") || estoqueAtual.equals("") || estoqueMinimo.equals("")/*edtDescricao.getText().toString().equals(null) && edtCategoria.getText().toString().equals(null) || edtVCusto.getText().toString().equals(null)
|| edtVVenda.getText().toString().equals(null) || edtEAtual.getText().toString().equals(null) || edtEMinimo.getText().toString().equals(null)*/) {
Toast.makeText(CadastroProduto.this, "Campos não preenchidos, tente novamente", Toast.LENGTH_SHORT).show();
}
else {
long res = db.CriarProduto(produto);
if (res>0){
Toast.makeText(CadastroProduto.this, "Produto cadastrado", Toast.LENGTH_SHORT).show();
Intent i = new Intent (CadastroProduto.this, Produtos.class);
startActivity(i);
}else {
Toast.makeText(CadastroProduto.this, "Cadastro invalido, tente novamente", Toast.LENGTH_SHORT).show();
}
}
}
});
}
This is the class I'm trying to write to the data in the table named TABELA_PRODUTOS
, the question is this: the application is even creating the table of products, but not writing the data entered in the fields of the registration screen!