我是< code>sqlite数据库的新手,在我的项目中,我需要在创建数据库后添加数据。我尝试了这种方式,这是我的代码。
公共类主要活动扩展活动 {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView v = (TextView)findViewById(R.id.textView1);
MySqlHelper helper = new MySqlHelper(this);
v.setText(helper.getBird(2));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我创建了另一个类来打开sqlite数据库。
公共类MySqlHelper扩展SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "BirdDB";
private static final String TABLE_BIRDS = "birds";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String[] COLUMNS = {KEY_ID,KEY_NAME};
public MySqlHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String CREATE_TABLE = "CREATE TABLE birds ( " +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT )";
db.execSQL(CREATE_TABLE);
db.close();
SQLiteDatabase dbase = this.getWritableDatabase();
dbase.insert(TABLE_BIRDS, null, addBirdData("Sri Lanka Jungle Flowl"));
dbase.insert(TABLE_BIRDS, null, addBirdData("Red Faced Mal Koha"));
dbase.close();
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS birds");
this.onCreate(db);
}
public ContentValues addBirdData(String birdName){
ContentValues values = new ContentValues();
values.put(KEY_NAME, birdName);
return values;
}
公共字符串getBird(int id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor =
db.query(TABLE_BIRDS, // a. table
COLUMNS, // b. column names
" id = ?", // c. selections
new String[] { String.valueOf(id) }, // d. selections args
null, // e. group by
null, // f. having
null, // g. order by
null); // h. limit
if (cursor != null)
cursor.moveToFirst();
String name = cursor.getString(1);
db.close();
return name;
}
它给我java.lang.IllegalStateException:(conn#0)已经关闭
异常
帮助我避免这种情况,并在创建数据库后立即插入数据。
在数据库帮助程序 onCreate()
中,不能调用可写数据库 ()
。相反,请在作为方法参数传入的 db
上执行插入。不要在上面调用关闭()
。
修改数据库助手onCreate()
后,卸载应用程序,以便删除旧的数据库文件,并运行onCreate。
问题内容: 首次启动应用程序后,我需要向SQLite数据库添加初始值。我该怎么办? 问题答案: 在DBAdapter.java类文件中,您可以执行此操作。 喜欢这种类型。
主要内容:语法,实例,.dump 命令SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。 语法 sqlite3 命令的基本语法如下: 通常情况下,数据库名称在 RDBMS 内应该是唯一的。 另外我们也可以使用 .open 来建立新的数据库文件: 上面的命令创建了数据库文件 test.db,位于 sqlite3 命令同一目录下。 打开已存在数据库也是用 .open 命令,
创建数据库之后,如何执行DDL语句来创建表?
主要内容:语法,实例假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。 语法 SQLite 的 ATTACH DATABASE 语句的基本语法如下: 如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库已存在,则把数据库文件名称与逻辑数据库 '
问题内容: 我正在使用http://code.google.com/p/sqlite- jdbc/wiki/Introduction中 的SQLite驱动程序。 上述文档中显示的示例显示了如何连接现有数据库。 在我的应用程序中,我需要创建一个SQLite数据库。怎么做?创建具有扩展名的文件是否足够?还有一个叫做的函数。如果可以,如何使用?我用谷歌搜索,没有人给出明确的答案。 问题答案: 如果文件不
然而,敬虔加上知足的心便是大利了,因为我们没有带什么到世上来,也不能带什么去,只要有衣有食,就当知足。但那些想要发财的人,就陷在迷惑、落在网罗和许多无知有害的私欲里,叫人沉在败坏和灭亡中。贪财是万恶之根。有人贪恋钱财,就被引诱离了真道,用许多愁苦把自己刺透了。(1 TIMOTHY 6:6-10) SQLite数据库 SQLite是一个小型的关系型数据库,它最大的特点在于不需要服务器、零配置。前面的