0

在我的应用程序中,我有一个数据库,其中有 2 个表。我有 2 个以下查询:

1.是否可以创建具有某些默认值的数据库?2.我有 1 个屏幕,其中有 5 个编辑框,1 个保存按钮。当用户按下保存按钮时,应该更新数据库中的 5 个编辑框值(替换旧的)?

请帮我。

这是用于创建数据库:

private static final String DATABASE_SPIN=
"create table spinner(_id integer primary key autoincrement,"+" spin text not null);";

这是exesql:

public void onCreate(SQLiteDatabase db)
{
db.execSQL(DATABASE_SPIN);
}

我的填充代码是:

Cursor c=db.getAllTitlesSpin();
           startManagingCursor(c);
           int spinColumnIndex = c.getColumnIndexOrThrow("spin"); 

//          String group[]=getResources().getStringArray(R.array.group_array);

            ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
                    this, android.R.layout.simple_spinner_item);
            adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(adapter1);    

            if (c.moveToFirst()) { 
                do { 
                    adapter1.add(c.getString(spinColumnIndex)); 
                } 
                while (c.moveToNext()); 
                if (db != null) { 
                db.close(); 
            } 
            }
4

2 回答 2

1
  • 您可以在列中创建具有默认值的表

每次通过不为所有表列提供显式值的 INSERT 语句将行插入表时,存储在新行中的值由它们的默认值确定,如下所示:

如果列的默认值是常量 NULL、文本、blob 或有符号数字值,则该值直接用于新行。

如果列的默认值是括号中的表达式,则表达式会为插入的每一行计算一次,并将结果用于新行。

如果列的默认值为 CURRENT_TIME、CURRENT_DATE 或 CURRENT_TIMESTAMP,则新行中使用的值是当前 UTC 日期和/或时间的文本表示。对于 CURRENT_TIME,值的格式为“HH:MM:SS”。对于 CURRENT_DATE,“YYYY-MM-DD”。CURRENT_TIMESTAMP 的格式为“YYYY-MM-DD HH:MM:SS”。

  • 您可以使用查询的输出创建和填充表SelectCREATE TABLE ... AS SELECT 语句
  • 您可以复制一个表的内容并使用它来填充另一个表,只要表的结构相同。INSERT INTO Destination SELECT * FROM Source;
于 2012-07-17T10:18:09.450 回答
0
  1. 如果您使用 SQLiteOpenHelper 创建数据库,请使用 onCreate 方法创建数据库,然后使用另一个 db.execSQL() 调用输入要存储的默认值
  2. 您可以像在任何其他数据库中一样更新 sqlitedb 中的值 - 使用 _id 字段来标识要更新的行

如果您只存储 5 个值,SharedPreferences是一种更好的方法。

于 2012-07-17T10:35:30.340 回答