Nadav Kadar
Nadav Kadar

Reputation: 27

Insert values to Sql database

I'm trying to keep the Date in String format in a database but it always returns me -1. why is it happening?

public boolean addDate(String item1) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1, item1);

        long result = db.insert(TABLE_NAME, null, contentValues);

        //if date as inserted incorrectly it will return -1
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }

Here is the DataBaseHelper class -

package com.exemple.myapplication;

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

/**
 * Created by Mitch on 2016-05-13.
 */
public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "mylist.db";
    public static final String TABLE_NAME = "mylist_data";
    public static final String COL1 = "Date";
    public static final String COL2 = "Distance";
    public static final String COL3 = "Time";


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

    @Override
    public void onCreate(SQLiteDatabase db) {
        String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
                " ITEM1 TEXT)";
        db.execSQL(createTable);
    }

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

    public boolean addDate(String item1) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1, item1);

        long result = db.insert(TABLE_NAME, null, contentValues);

        //if date as inserted incorrectly it will return -1
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }
    public boolean addDis(String item1) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL2, item1);

        long result = db.insert(TABLE_NAME, null, contentValues);

        //if date as inserted incorrectly it will return -1
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }
    public boolean addTime(String item1) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL3, item1);

        long result = db.insert(TABLE_NAME, null, contentValues);

        //if date as inserted incorrectly it will return -1
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }
    public Cursor getListContents(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
        return data;
    }
}

Upvotes: 0

Views: 69

Answers (2)

Dharmik Ghori
Dharmik Ghori

Reputation: 222

it's becuase you are using COL1 as key but equals to ="Date" but table mylist_data contains only one column named "ITEM1" so please replace COL1 = "Date" to "ITEM1".

Upvotes: 1

Michael Dodd
Michael Dodd

Reputation: 10270

You don't have a column called Date in your table (nor Distance or Time for that matter). You'll need to change your CREATE TABLE statement to include these columns:

String createTable = "CREATE TABLE " + TABLE_NAME 
        + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " 
        + COL1 + " TEXT, "
        + COL2 + " TEXT, "
        + COL3 + " TEXT, "
        + "ITEM1 TEXT)";

This is assuming that all the columns will be of type TEXT and that you still need the column ITEM1. If not, then just delete that line and close the bracket after COL3.

Upvotes: 3

Related Questions