首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未创建SQLite数据库

未创建SQLite数据库
EN

Stack Overflow用户
提问于 2013-04-02 23:49:09
回答 2查看 733关注 0票数 1

这段代码并没有创建我的数据库。我想创建一个预填充表,在创建表时使用一些默认值。虽然在执行时没有错误。有什么帮助吗?

DatabaseHelper代码:

代码语言:javascript
复制
public class DatabaseHelper extends SQLiteOpenHelper {

public static String dbName = "whatever.db";
public static int dbVersion = 2; 

public DatabaseHelper(Context context) {
    super(context, dbName, null, dbVersion);
    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String createTable = "CREATE TABLE smart (UID INTEGER PRIMARY KEY, NAME TEXT);";
    db.execSQL(createTable);
    ContentValues cv = new ContentValues();
    cv.put("UID", 9);
    cv.put("NAME", "clear");
    db.insert("smart", null, cv);
    db.close();

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF EXISTS smart");

}


}

MainActivity代码:

代码语言:javascript
复制
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    DatabaseHelper dbHelper = new DatabaseHelper(this);
    dbHelper.close();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-03 00:25:16

试试这段代码

在您的DatabaseHelper中:

代码语言:javascript
复制
public static String dbName = "whatever.db";
public static int dbVersion = 2;

public DatabaseHelper(Context context) {
    super(context, dbName, null, dbVersion);
}

@Override
public void onCreate(SQLiteDatabase db) 
{
    String createTable = "CREATE TABLE smart (UID INTEGER PRIMARY KEY, NAME TEXT);";
    db.execSQL(createTable);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{
    db.execSQL("DROP TABLE IF EXISTS smart");

}

在你的活动中:

代码语言:javascript
复制
    DatabaseHelper helper = new DatabaseHelper(MainActivity.this);
    SQLiteDatabase myDB = helper.getWritableDatabase();

    ContentValues cv = new ContentValues();
    cv.put("UID", 9);
    cv.put("NAME", "clear");
    myDB.insert("smart", null, cv);
    myDB.close();

或者在Database helper中添加此方法:

代码语言:javascript
复制
    public void save(int yourUID, String yourText)
{
    SQLiteDatabase myDB = this.getWritableDatabase();
    ContentValues cv = new ContentValues();

    cv.put("UID", yourUID);
    cv.put("NAME", yourText);
    myDB.insert("smart", null, cv);
    myDB.close();
}

然后在你的活动中编写代码:

代码语言:javascript
复制
            DatabaseHelper helper = new DatabaseHelper(MainActivity.this);
    helper.save(12, "Clear");

我希望我能帮到你。

票数 3
EN

Stack Overflow用户

发布于 2013-04-03 00:09:09

不使用sqliteopenhelper尝试此操作

在你的活动课上

代码语言:javascript
复制
private SqliteDatabase Dbname;
Dbname =  this.openOrCreateDatabase(YourDbname, MODE_PRIVATE, null);//inside oncreate()

String createTable = "CREATE TABLE smart (UID INTEGER PRIMARY KEY, NAME TEXT);";
db.execSQL(createTable); 

ContentValues cv = new ContentValues();
cv.put("UID", 9);
cv.put("NAME", "clear");

db.insert("smart", null, cv);
db.close();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15768513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档