0

これは私がActivityすべての仕事をしている私のメインです。データベースの作成中にエラーが発生しSQLiteます。

private final String DB_NAME = "pocketCloudlets";
private final String TABLE_NAME_1 = "Members";
long count = 0;
static final String userTable="user";

static final String userName = "User";
static final String userID = "_id";
static final String age ="age";
static final String gender = "gender";
static final String password = "password";
static final String email = "email";

// Creating Table for User Record  

protected static final String table1=(" CREATE TABLE IF NOT EXISTS " 
    + userTable + " ("
    + userID + " INTEGER PRIMARY KEY NOT NULL, "
    + userName + " VARCHAR ,"
    + age + " VARCHAR ,"
    + gender + " VARCHAR )");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.main);

        ArrayList<String> results = new ArrayList<String>();
        SQLiteDatabase sampleDB = null;

        try {      
            sampleDB = this.openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);
            sampleDB.execSQL(table1);

            sampleDB.execSQL("INSERT INTO " +
                userTable +
                " Values ('13','dawdaa','4','female');");

            Cursor c = sampleDB.rawQuery("SELECT _id,userName, age, gender FROM " +
                userTable + " ", null);
        } catch (Throwable t) {
            // completed by the editor of this question
            // the 'catch' part of the try-catch structure was NOT present
        }
4

3 に答える 3

2

これは、アクティビティを初めて開始したときに機能したと思います。で 1 行を挿入した_id = 13ので、これをもう一度行うたびに、同じ ID を何度も作成することになります。

_idテーブルの主キーとして指定したため、これは許可されていません。主キーは一意である必要があります。

于 2012-09-05T19:41:48.667 に答える
0
Cursor c = sampleDB.rawQuery("SELECT _id,userName, age, gender FROM " +
    userTable + " ", null);

テーブルに列がありませんuserName。代わりに、列を使用してテーブルを作成しましたuser

代わりに使用してください:

Cursor c = sampleDB.rawQuery("SELECT _id, user, age, gender FROM " + userTable, null);
于 2012-09-05T19:10:25.433 に答える
0

userID 列を Integer Primary Key AutoIncrement に設定してみてください。また、sqlite で VARCHAR を使用できないことも確信しています。代わりに TEXT を使用する必要があります。参照用にこのリンクをチェックしてください: http://www.sqlite.org/datatype3.html

于 2012-09-05T19:32:45.067 に答える