2016-05-22 20 views
0
package com.example.mohamed.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 mohamed on 5/22/2016. 
*/ 
public class MyDBHandler extends SQLiteOpenHelper { 

    private static final int DB_VERSION=2; 
    private static final String DB_NAME="products.db"; 
    public static final String TABLE_PRODUCTS="products"; 
    public static final String Column_id="_id"; 
    public static final String Column_Products="productname"; 

    public MyDBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
     super(context, DB_NAME, factory, DB_VERSION); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String query = "CREATE TABLE " + TABLE_PRODUCTS + "(" + 
       Column_id +" INTEGER PRIMARY KEY AUTOINCREMENT ," + 
       Column_Products + " TEXT " + 
       ");"; 
     db.execSQL(query); 
    } 


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

     db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRODUCTS); 
     onCreate(db); 
    } 

    public void addproduct (Products product){ 

     ContentValues values=new ContentValues(); 
     values.put(Column_Products,product.get_productname()); 
     SQLiteDatabase db=getWritableDatabase(); 
     db.insert(TABLE_PRODUCTS, null, values); 
     db.close(); 

    } 
    public void deleteproduct (String productname) 
    { 

     SQLiteDatabase db=getWritableDatabase(); 
     db.execSQL("DELETE FROM " + TABLE_PRODUCTS +"WHERE" +Column_Products + "=\"" + productname + "\";"); 

    } 

    public String DatabaeToString(){ 
     String dbstring =""; 
     SQLiteDatabase db=getWritableDatabase(); 
     String query ="SELECT * FROM " + TABLE_PRODUCTS +" WHERE 1"; 

     Cursor c = db.rawQuery(query,null); 
     c.moveToFirst(); 

     while (!c.isAfterLast()){ 
      if(c.getString(c.getColumnIndex("productname"))!=null){ 
      dbstring +=c.getColumnIndex("productname"); 
      dbstring +="\n" ; 
      } 
     } 
     return dbstring; 

    } 
} 

[logcat的scrshot] [2] **我已經在這個固定碼錶產品工作1天沒有名爲列產品名稱** android.database .sqlite.SQLiteException:臺產品沒有指定的列產品名稱(代碼1):在編譯:INSERT INTO產品(產品名稱)VALUESSQLite的-Android工作室 - 「表的產品有沒有指定的列」

Logcat screen shot

+0

你嘗試了你的create table語句嗎?這是錯誤的。 –

+0

你是什麼意思?哪裏是錯誤的部分? –

+0

列用逗號分隔。 –

回答