Android SQL不插入对象

Android SQL不插入对象,android,sql,Android,Sql,我试图使用SQL将编辑文本的值保存在表中,但它没有插入任何内容。我检查表是否已创建,是否已创建,但它为空 有一个MyDatabase类,我将它与SQL一起使用 public class MyDatabase extends SQLiteOpenHelper { public static final int database_version = 1 ; public static final String database_name = "Posts" ;

我试图使用SQL将编辑文本的值保存在表中,但它没有插入任何内容。我检查表是否已创建,是否已创建,但它为空 有一个MyDatabase类,我将它与SQL一起使用

public class MyDatabase extends SQLiteOpenHelper
 {
    public static final int database_version = 1 ;

    public static final String database_name = "Posts" ;
    public static final String Table_Name = "posts" ;
    public static final String POST_COL_ID = "id" ;
    public static final String POST_COL_NAME = "name" ;
    public static final String POST_COL_TYPE = "type" ;
    public static final String POST_COL_DIS = "description" ;
    public static final String POST_COL_TEAM_NUM = "team number" ;
    public static final String POST_COL_NUM_NEED = "number need" ;

    public MyDatabase(Context context){
        super(context ,database_name ,null , database_version);
        //Toast.makeText(context, "created", Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String create ="CREATE TABLE " +Table_Name +" ("+ POST_COL_ID +" INTEGER PRIMARY KEY AUTOINCREMENT ,"+
                ""+POST_COL_NAME+" TEXT ,"+POST_COL_DIS+" TEXT ,"+POST_COL_TEAM_NUM+" INTEGER , "+
                ""+ POST_COL_NUM_NEED + " INTEGER ," + POST_COL_TYPE + " TEXT )";
        sqLiteDatabase.execSQL(create);

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS Posts" );
        onCreate(sqLiteDatabase);
    }
    public boolean InsertPost(post post){
        SQLiteDatabase sqLiteDatabase  = getWritableDatabase() ;
        ContentValues contentValues = new ContentValues() ;
        contentValues.put(POST_COL_NAME , post.getName());
        contentValues.put(POST_COL_TYPE , post.getTeam_type());
        contentValues.put(POST_COL_DIS , post.getDiscription());
        contentValues.put(POST_COL_TEAM_NUM , post.getTeam_num());
        contentValues.put(POST_COL_NUM_NEED , post.getNeed_num());
        long result = sqLiteDatabase.insert(Table_Name , null , contentValues) ;
        return result != -1 ;
    }

当我调用它来保存这些数据时

post new_post = new post(name, discription, team_num, need_num, team_type);
              myDatabase  = new MyDatabase(getBaseContext());
              myDatabase.InsertPost(new_post);
             boolean result =  myDatabase.InsertPost(new_post);
              if (result)
                  Toast.makeText(getBaseContext(), "success", Toast.LENGTH_SHORT).show();
              else
             Toast.makeText(team_info.this, myDatabase.getPostsCount() +"", Toast.LENGTH_SHORT).show();

下面是我的工作数据库中的一个示例

public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, name, factory, version);

}



@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL("create table " + USER_TABLE_NAME + "(" +
            USER_COLUMN_ID + " integer primary key AUTOINCREMENT NOT NULL, " +
            USER_COLUMN_EMAIL + " text, " +
            USER_COLUMN_PASSWORD + " text, " +
            USER_COLUMN_TYPE + " integer, " +
            USER_COLUMN_NAME + " text, " +
            USER_COLUMN_LASTNAME + " text," +
            USER_COLUMN_CONTACTNO + " text, " +
            USER_COLUMN_STREET_NUMBER + " integer, " + // nullable
            USER_COLUMN_STREET_NAME + " text, " +// nullable
            USER_COLUMN_SUBURB + " text, " +
            USER_COLUMN_POSTCODE + " integer, " +
            USER_COLUMN_BUSINESS_NAME + " text )");
...... 
}




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

    db.execSQL("drop table if exists " + USER_TABLE_NAME);
    db.execSQL("drop table if exists " + RESOURCE_TABLE_NAME);
    db.execSQL("drop table if exists " + EVENT_TABLE_NAME);
    onCreate(db);

}
这是我的插页

 public String insertUser(User user)
{
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues contentValues = new ContentValues();
    contentValues.put(USER_COLUMN_EMAIL, user.getEmail());
    contentValues.put(USER_COLUMN_PASSWORD, user.getPassword());
    contentValues.put(USER_COLUMN_TYPE, user.getUserType());
    contentValues.put(USER_COLUMN_NAME, user.getName());
    contentValues.put(USER_COLUMN_LASTNAME, user.getLastName());
    contentValues.put(USER_COLUMN_CONTACTNO, user.getContactNo());
    if(user.getStreetName() == null && user.getStreetNumber() == null)
    {

    }else {
        contentValues.put(USER_COLUMN_STREET_NUMBER, user.getStreetNumber());
        contentValues.put(USER_COLUMN_STREET_NAME, user.getStreetName());
    }

    contentValues.put(USER_COLUMN_SUBURB, user.getSuburb());
    contentValues.put(USER_COLUMN_POSTCODE, user.getPostcode());

    if(user.getBusinessName() == null)
    {
        // Default to "private" businessName
    } else {
        // Get user businessName
        contentValues.put(USER_COLUMN_BUSINESS_NAME, user.getBusinessName());
    }

    long id = db.insert(USER_TABLE_NAME, null, contentValues);
    return Long.toString(id);

}
您确认该表是通过检查设备上的文件创建的吗? 另外,插入数据库时的返回值不是布尔值,如果我没记错的话,它将是主键值

也许可以将“createtable”改为小写的“createtable”,看看是否有不同