我试图让用户构建词汇表列表,然后从数组中的数组中保存不同的词汇表。为了让用户能够为每个列表命名,我尝试为每个表提供用户定义的名称。然后传输" nameOfList-String变量"是表的名称。但是这在编译时会给我一个错误。为了简单起见,我在这里做了一个替代代码,原则上代表了我想要实现的目标:
public class MainActivity extends AppCompatActivity {
String[] exampleArray = {"one", "two", "three"};
String nameOfList = "listName";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase database
=getBaseContext().openOrCreateDatabase("exampleDatabase",
MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS
'"+nameOfList+"'(numbers VARCHAR)");
for (int x = 0; x <= 2; x++){
database.execSQL("INSERT INTO '"+nameOfList+"' VALUES
(exampleArray[x])");
}
}
}
我收到以下错误: 引起:android.database.sqlite.SQLiteException:near&#34; [x]&#34 ;:语法错误(代码1):,同时编译:INSERT INTO&#39; listName&#39; VALUES(exampleArray [x])
如何将用户输入作为String变量,并使用String变量在SQLite中命名表,然后用数组中的字符串填充数据库? 感谢任何帮助: - )
答案 0 :(得分:1)
您正在尝试插入字符串&#34; exampleArray [x]&#34;当我认为你想要数组exampleArray
的元素x的内容时。因此,将插入更改为:
database.execSQL("INSERT INTO '"+nameOfList+"' VALUES
(" + exampleArray[x] + ")");
答案 1 :(得分:-1)
我认为你应该这样做:
org.skife.jdbi.v2.exceptions.UnableToCreateStatementException: Exception while binding 'cities' [statement:"SELECT * FROM Universities WHERE Location IN (:cities)", arguments:{ positional:{}, named {cities:factory.ListArgumentFactory$1@6788168c}, finder:[]}]
您可以在此处找到更多信息:http://hmkcode.com/android-simple-sqlite-database-tutorial/ 希望这有帮助!