SQLite wywala przy zapisywaniu

0

Może mi ktoś zerknąć w kod i powiedziec co robie źle? Po wpisaniu danych i wcisnieciu klawisza Zapis wywala mi aplikacje na telefonie.

 package com.sqlite;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    DatabaseHelper myDb;
    EditText editnazwa, editww, editwbt;
    Button button5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb = new DatabaseHelper(this);

        editnazwa = (EditText) findViewById(R.id.editText_nazwa);
        editww = (EditText) findViewById(R.id.editText_ww);
        editwbt = (EditText) findViewById(R.id.editText_wbt);
        button5 = (Button) findViewById(R.id.button5);
        AddData();
    }

    public void AddData() {
        button5.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        boolean isInserted = myDb.insertData(editnazwa.getText().toString(),
                                editww.getText().toString(),
                                editwbt.getText().toString());
                        
                        if (isInserted = true) {
                            Toast.makeText(MainActivity.this, "Produkt został dodany", Toast.LENGTH_LONG).show();
                        }
                            else {
                            Toast.makeText(MainActivity.this, "Produkt nie został dodany", Toast.LENGTH_LONG).show();
                        }

                    }

                }
        );
    }
}
package com.sqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Administrator on 20.04.2016.
 */
public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME="produkty.db";
    public static final String TABLE_NAME="produkty_table";
    public static final String COL_1="ID";
    public static final String COL_2="NAZWA";
    public static final String COL_3="WW";
    public static final String COL_4="WBT";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null,1);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAZWA TEXT,WW INTEGER,WBT INTEGER");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXIST"+ TABLE_NAME);
        onCreate(db);
    }

    public boolean insertData(String nazwa,String ww, String wbt){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues contentValues=new ContentValues();
        contentValues.put(COL_2,nazwa);
        contentValues.put(COL_3,ww);
        contentValues.put(COL_4,wbt);
        long result=db.insert(TABLE_NAME,null,contentValues);
        if (result==-1) {
            return false;
        }
        else {
            return true;
        }
    }
}

0

Ciezko, trzebaby zgadywac ;) na pewno masz blad w

if (isInserted = true) {

No ale to nie spowoduje wysypania ;)

1

zapytania do bazy danych sa zle np
db.execSQL("DROP TABLE IF EXIST"+ TABLE_NAME);
"DROP TABLE IF EXISTSProdukty_table"

nie masz spacji w zapytaniach i to prawdopodobnie prowadzi do bledow:
db.execSQL("DROP TABLE IF EXIST "+ TABLE_NAME);

zweryfikuj wszystkie zapytania
powodzenia :)

0

jesli porownujesz to uzywaj == albo object.Equals

if (isInserted = true) { w tym przypadku isInserted zawsze bedzie true

1 użytkowników online, w tym zalogowanych: 0, gości: 1