mardi 12 janvier 2016

FATAL EXCEPTION: AsyncTask #4 ...java.lang.RuntimeException: An error occured while executing doInBackground()

what problem in my code ? I can compile , but when i run the part to save my data into database. It crash. Please help .

Caused by: android.database.sqlite.SQLiteException: near "tableproduct_table": syntax error (code 1): , while compiling: create tableproduct_table(vendor text,product text,pprice integer,cprice intege t android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)

package kianyang.scbg;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;enter code here
import android.os.AsyncTask;
import android.widget.Toast;

/**
 * Created by ABC on 1/12/2016.
 */
public class BackgroundTask extends AsyncTask<String,Void,String>{
    Context ctx;
    BackgroundTask(Context ctx)
    {
        this.ctx=ctx;
    }
@Override
protected void onPreExecute() {
    super.onPreExecute();
}

@Override
protected String doInBackground(String... params) {

    String method=params[0];
DbOperation dbOperation=new DbOperation(ctx);

    if(method.equals("add_info"))
    {
        String Vendor=params[1];
        String Product=params[2];
        int Pprice=Integer.parseInt(params[3]);
        int Cprice=Integer.parseInt(params[4]);
        SQLiteDatabase db=dbOperation.getWritableDatabase();
        dbOperation.addInformation(db,Vendor,Product,Pprice,Cprice);
        return "One Row Inserted...";


    }


    return null;
}

@Override
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String result) {
    Toast.makeText(ctx,result, Toast.LENGTH_LONG).show();
}

}

package kianyang.scbg;

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

/**
 * Created by ABC on 1/12/2016.
 */
public class DbOperation extends SQLiteOpenHelper{

    private static final int DB_VERSION= 1;
    private static final String DB_NAME="product_info.db";
    private static final String CREATE_QUERY="create table"+ProductContract.ProductEntry.TABLE_NAME+
            "("+ ProductContract.ProductEntry.VENDOR+ " text,"+ ProductContract.ProductEntry.PRODUCT+ " text,"+
            ProductContract.ProductEntry.PPRICE+ " integer,"+ ProductContract.ProductEntry.CPRICE+ " integer);";
    DbOperation(Context ctx)
    {
        super(ctx,DB_NAME,null,DB_VERSION);
        Log.d("Database operation","Database created...");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL(CREATE_QUERY);
        Log.d("Database operation", "Table created...");


    }


    public void addInformation(SQLiteDatabase db,String vendor,String product,int pprice,int cprice)
    {
        ContentValues contentValues=new ContentValues();
        contentValues.put(ProductContract.ProductEntry.VENDOR,vendor);
        contentValues.put(ProductContract.ProductEntry.PRODUCT,product);
        contentValues.put(ProductContract.ProductEntry.PPRICE,pprice);
        contentValues.put(ProductContract.ProductEntry.CPRICE,cprice);
        db.insert(ProductContract.ProductEntry.TABLE_NAME, null, contentValues);
        Log.d("Database operation", "One Row Inserted...");

    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {

    }
}

Aucun commentaire:

Enregistrer un commentaire