我创建了一个没有任何表的空数据库,并且[保留]内的数据

我的db有问题。没有任何表和数据,只有空数据库。我应该在代码中更改什么?我想用硬编码的值创建一个数据库,因为我想稍后在spinner中使用它们。


Database class


    public class Database extends SQLiteOpenHelper {


    private static final String DATABASE_NAME = "CurrencyExchange.db";

    private static final String CURRENCY_TABLE = "currency_table";




    public Database(Context context) {

    super(context, DATABASE_NAME, null, 1);

}


@Override

public void onCreate(SQLiteDatabase db) {

    db.execSQL("CREATE TABLE "+CURRENCY_TABLE+ " ( ID INTEGER PRIMARY KEY AUTOINCREMENT, BGN TEXT, NZD TEXT, ILS TEXT, RUB TEXT, CAD TEXT, USD TEXT, PHP TEXT, CHF TEXT, ZAR TEXT, AUD TEXT, JPY TEXT, TRY TEXT, HKD TEXT, MYR TEXT, THB TEXT, HRK TEXT, NOK TEXT, IDR TEXT, DKK TEXT, CZK TEXT, HUF TEXT, GBP TEXT, MXN TEXT, KRW TEXT, ISK TEXT, SGD TEXT, BRL TEXT, PLN TEXT, INR TEXT, RON TEXT, CNY TEXT, SEK TEXT)");

}


@Override

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

    db.execSQL("DROP TABLE IF EXISTS "+CURRENCY_TABLE);

    onCreate(db);

}


public boolean insertData(){

    SQLiteDatabase database = this.getWritableDatabase();

    ContentValues contentValues = new ContentValues();


    final String insert_data = "INSERT INTO "+CURRENCY_TABLE+ " VALUES (0,'BGN','NZD','ILS','RUB','CAD','USD','PHP','CHF','ZAR','AUD','JPY','TRY','HKD','MYR','THB','HRK','NOK','IDR','DKK','CZK','HUF','GBP','MXN','KRW','ISK','SGD','BRL','PLN','INR','RON','CNY','SEK')";

    contentValues.put(CURRENCY_TABLE, insert_data);

    return database.insert(CURRENCY_TABLE, null, contentValues) != -1;

}

主要活动


    public class MainActivity extends AppCompatActivity {


Database database;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    database = new Database(this);

    database.insertData();



跃然一笑
浏览 575回答 3
3回答

SMILET

这不是你如何使用 ContentValues使用insert_data您制作的变量,您可以db.execSQL()再次使用db.execSQL(insert_data);如果你想使用ContentValues,database.insert()你必须像这样使用它:ContentValues values= new ContentValues();values.put(COLUMN1_NAME, value1);values.put(COLUMN2_NAME, value2);values.put(COLUMN3_NAME, value3);//for each column of your tablereturn database.insert(CURRENCY_TABLE, null, values) != -1;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java