在SQLite中运行时创建数据库表

3

由于我是新手,正在创建一个表并将其命名为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();
}

https://dev59.com/O1vUa4cB1Zd3GeqPsEo- - Shijil
1
您在表名中使用了空格...请尝试添加 [ 和 ] 来包含这个非常规的名称。 - Phantômaxx
1个回答

1

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

请尝试以下操作:

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();

请发布错误堆栈跟踪。没有任何线索,很难调试问题。 - Kaschwenk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接