如何从用户输入创建表?

时间:2014-05-06 04:52:25

标签: java android database eclipse sqlite

我一直在寻找几个小时,我似乎无法找到我一直在寻找的答案。我想根据用户输入创建一个表(主题表)(用户只输入表名),在该表中,用户可以添加信息(例如注册该特定的学生主题。这在Android中是否可行?我正在使用eclipse。我在Android编程中真的是一个新手。你能给我一些提示搜索什么或我应该尝试什么为实现这一点而努力。请帮助我只是寻求可能对我有帮助的建议/提示/教程。提前致谢。抱歉我的英语不好。 OUTPUT

注意:这里的主要问题是我不知道如何从用户输入创建表。我需要建议/提示。

1 个答案:

答案 0 :(得分:2)

好的,我还不确定你在哪里遇到问题,但是我发布这个因为评论太大了。在您当前的设置中,我们假设您有EditText用户将输入新主题(例如math)。要制作新表,您需要进行两项操作:在主题表中插入数学文本,然后实际创建新的数学表。您需要在事务中执行此操作,以确保此操作成功或失败为一个(http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#beginTransaction%28%29)。首先,要在主题表中插入数学文本,您将使用http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#insert%28java.lang.String,%20java.lang.String,%20android.content.ContentValues%29。然后创建新的数学表:

// get the text entered by the user, also trim it for extra spaces
String newTableName = editTextInput.getText().trim(); 
// the entered name should consist only of characters
newTableName = newTableName.replaceAll("[^a-zA-Z]", "");
// create the new table
sqliteDatabase.execSQL("CREATE TABLE " + newTableName);

您设置数据库的方式远非理想。你应该避免为每个主题表条目创建表格(对于学生来说,我假设学生将参加多个课程),而应该创建一个主题表,一个学生表(每个都有一个唯一的id)和一个连接其中两个的表(也看看sqlite外键)。

相关问题