Функция SQLITE DataBase Android не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Функция SQLITE DataBase Android не работает

Сообщение Anonymous »

У меня есть база данных, которую я реализовал для хранения в ней некоторых данных. У меня нет ошибок, но моя функция InsertData не работает с двумя параметрами!

Код: Выделить всё

public class PersonDataBaseHelper {

private static final String TAG = PersonDataBaseHelper.class.getSimpleName();

// database configuration
// if you want the onUpgrade to run then change the database_version
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "mydatabase.db";

// table configuration
private static final String TABLE_NAME = "person_table";         // Table name
private static final String PERSON_TABLE_COLUMN_ID = "_id";
// a column named "_id" is required for cursor

private static final String PERSON_TABLE_COLUMN_NAME = "person_name";
private static final String PERSON_TABLE_COLUMN_USERNAME = "person_username";

private DatabaseOpenHelper openHelper;
private SQLiteDatabase database;

// this is a wrapper class. that means, from outside world, anyone will communicate with PersonDatabaseHelper,
// but under the hood actually DatabaseOpenHelper class will perform database CRUD operations
public PersonDataBaseHelper(Context aContext) {

openHelper = new DatabaseOpenHelper(aContext);
database = openHelper.getWritableDatabase();
database = openHelper.getReadableDatabase();
}

public Cursor getAllData () {

String buildSQL = "SELECT * FROM " + TABLE_NAME;

Log.d(TAG, "getAllData SQL: " + buildSQL);

return database.rawQuery(buildSQL, null);
}
public void insertData (String aPersonName,String username) {

// we are using ContentValues to avoid sql format errors

ContentValues contentValues = new ContentValues();

contentValues.put(PERSON_TABLE_COLUMN_NAME, aPersonName);
contentValues.put(PERSON_TABLE_COLUMN_USERNAME, username);

database.insert(TABLE_NAME, null, contentValues);
}

public Cursor getSomeData(String text){

return database.query(TABLE_NAME, new String[] {PERSON_TABLE_COLUMN_ID,PERSON_TABLE_COLUMN_NAME},
PERSON_TABLE_COLUMN_NAME + " LIKE ?", new String[] {"%" + text + "%"},
null, null, null);

}

public boolean deleteSingleRow(long rowId)
{

return database.delete(TABLE_NAME, PERSON_TABLE_COLUMN_ID + "=" + rowId, null) > 0;
}
// this DatabaseOpenHelper class will actually be used to perform database related operation

private class DatabaseOpenHelper extends SQLiteOpenHelper {

public DatabaseOpenHelper(Context aContext) {
super(aContext, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
// Create your tables here

String buildSQL = "CREATE TABLE " + TABLE_NAME + "( " + PERSON_TABLE_COLUMN_ID + " INTEGER PRIMARY KEY, " +
PERSON_TABLE_COLUMN_NAME+" TEXT,"+PERSON_TABLE_COLUMN_USERNAME+" TEXT )";

Log.d(TAG, "onCreate SQL: " + buildSQL);

sqLiteDatabase.execSQL(buildSQL);
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
// Database schema upgrade code goes here

String buildSQL = "DROP TABLE IF EXISTS " + TABLE_NAME;

Log.d(TAG, "onUpgrade SQL: " + buildSQL);

sqLiteDatabase.execSQL(buildSQL);       // drop previous table

onCreate(sqLiteDatabase);               // create the table from the beginning
}
}
Моя функция вставки данных не работает из-за второго параметра. Если я прокомментирую эту строку:

Код: Выделить всё

contentValues.put(PERSON_TABLE_COLUMN_USERNAME, username)
Моя функция InsertData работает нормально... Я не могу найти проблему в своей базе данных. Все остальные функции работают из моей базы данных. Я новичок в программировании под Android. Извините, если я не очень хорошо написал по-английски

Подробнее здесь: https://stackoverflow.com/questions/335 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»