如何正确使用SQLite数据库?

时间:2018-02-08 11:07:53

标签: java android database sqlite android-sqlite

请为我提供此代码的解决方案。这是行不通的。按下提交按钮后,应用程序返回。它无法存储数据

$('.travel').each(function() {
  var land = $(this).find('.invisible .land').text();
  $(this).find('.land-vorschau').html(land);
});

}

public class UserContract  {
//if you need multi tabless user inner classes to represent each table inn class

public  static abstract class NewUserinfo implements BaseColumns
{
    public static final String USER_NAME="user_name"; //right side represent column name
    public static final String USER_MOB="user_mob";
    public static final String USER_EMAIL="user_email";

    public static final String TABLE_NAME="user_info";

}
public class UserDbHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME="USERINFO.DB";
private static final int database_version=1;
private static final String create_query=
        "CREATE TABLE "+ UserContract.NewUserinfo.TABLE_NAME + " ("+ UserContract.NewUserinfo.USER_NAME+" TEXT, "+
        UserContract.NewUserinfo.USER_MOB+" TEXT,"+ UserContract.NewUserinfo.USER_EMAIL+" TEXT);";


public UserDbHelper(Context context)
{
    super(context,DATABASE_NAME,null,database_version);
    Log.e("database operation ","database created /opend");

}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(create_query);
        Log.e("database operation","table created");
}
public void addinformation(String name, String mob, String email, SQLiteDatabase db)
{
    ContentValues contentValues=new ContentValues();
    contentValues.put(UserContract.NewUserinfo.USER_NAME,name);
    contentValues.put(UserContract.NewUserinfo.USER_MOB,mob);
    contentValues.put(UserContract.NewUserinfo.USER_EMAIL,email);
    db.insert(UserContract.NewUserinfo.TABLE_NAME,null,contentValues);
    Log.e("database operation","one row insert");
}

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

}
}

2 个答案:

答案 0 :(得分:0)

您需要其中一个变量中的主键。这样说吧。

String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + TITLE + " TEXT," + PRINT_NAME + " TEXT," + MRP + " TEXT," + QTY + " TEXT, " + IMAGE + " BLOB, " + WEIGHT + " TEXT " + ")";
    db.execSQL(CREATE_TABLE);
}

整体守则应该像......

public class SQLiteHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Club100database";
private static final String TABLE_NAME = "myclub100cart";
private static final String KEY_ID = "cart_id";
private static final String TITLE = "title";
private static final String PRINT_NAME = "print_name";
private static final String MRP = "mrp";
private static final String QTY = "qty";
private static final String IMAGE = "image";
private static final String WEIGHT = "weight";


public SQLiteHandler(Context context) {

    super(context,DATABASE_NAME,null,DATABASE_VERSION);
}


@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + TITLE + " TEXT," + PRINT_NAME + " TEXT," + MRP + " TEXT," + QTY + " TEXT, " + IMAGE + " BLOB, " + WEIGHT + " TEXT " + ")";
    db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
    db.execSQL(" DROP TABLE " + TABLE_NAME);
    onCreate(db);
}
}

答案 1 :(得分:0)

正如你提到的错误:

  

02-08 16:22:06.453 1994-1994 / com.example.abbas.sqlitedatabase   E / dalvikvm:找不到上课   'android.graphics.drawable.RippleDrawable',从方法引用   android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering

它不是DataBase的问题,它是Drawable Resource的问题

看看这个

Could not find RippleDrawable

Could not find class 'android.graphics.drawable.RippleDrawable', Could not execute method for android:onClick, Android Studio