android - 在sqlite中运行时创建数据库表

标签 android sqlite sqliteopenhelper

因为我是 android 编程的新手,所以我正在创建一个表并用 edittext 中的文本命名它。我该怎么做。搜索问题但没有得到任何答案。我的应用程序需要在运行时创建许多表。我正在使用 SQLiteOpenHelper 类所以请帮我做。我已经创建了一个函数来创建表,并且在 onCreate()/onUpgrade 函数中什么也没写。

public void createClass(String table){
    shuddhHelper = new DbHelper(shuddhContext);
    SQLiteDatabase db = shuddhHelper.getWritableDatabase();
    db.execSQL("CREATE TABLE " + table + " (" +
            STUDENT_NAME + " TEXT NOT NULL, " +
            ROLL_NO + " TEXT PRIMARY KEY, " +
            STUDENT_PHONE + " INTEGER NOT NULL, " +
            PARENT_PHONE + " INTEGER NOT NULL);"                
            );      
}

并在 onClickListener 中调用这样的函数

className = "" + spinner.getSelectedItem().toString() + " "
            + sessionStart.getText().toString() + " - "
            + sessionEnd.getText().toString();
    AMData classtable = new AMData(AddScreen.this);
    classtable.open();
    classtable.createClass(className);
    classtable.close();

     Intent myIntent = new Intent(AddScreen.this, NewStudent.class);
     myIntent.putExtra("className", className);
     startActivity(myIntent);

并在此处打开和关闭功能:

public AMData open() {
    shuddhHelper = new DbHelper(shuddhContext);
    shuddhDataBase = shuddhHelper.getWritableDatabase();
    return this;
}
public void close(){
    shuddhHelper.close();
}

最佳答案

您的表名错误,因为它包含空格。

尝试以下操作:

className = "" + spinner.getSelectedItem().toString() + "_"
        + sessionStart.getText().toString() + "-"
        + sessionEnd.getText().toString();

顺便说一句:如果您必须连接多个字符串,最好使用 StringBuilder。它使用更少的内存空间和计算时间。

String class = new StringBuilder().append(spinner.getSelectedItem().toString())
                                  .append("_")
                                  .append(sessionStart.getText().toString())
                                  .append("-")
                                  .append(sessionEnd.getText().toString())
                                  .toString();

关于android - 在sqlite中运行时创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755478/

相关文章:

android - 通过方向更改保存下载的位图

java - 比较数组内容精度算法

java - 圆形按钮

android - SQLiteOpenHelper onCreate()/onUpgrade() 什么时候运行?

android - SQLiteOpenHelper onCreate()/onUpgrade() 何时运行?

android - 从 URI 获取图像宽度和高度

python - Sqlite3 中的 cursor.fechtmany(size=cursor.arraysize)

sqlite - 尝试向SQLite表中添加UNIQUE INDEX时为什么出现“索引列不是唯一的”错误?

c# - Windows Phone 的复选框

android - 内容提供商没有这个表