代码:
//creating an sqlite query and setting column names
along with data types.
String query = "CREATE TABLE tableMon (notes TEXT)";
//calling a exec sql method to execute sql query
db.execSQL(query);
//after adding....passing content values to the table
String insert = "INSERT INTO tableMon (notes) VALUES (
" + values + " )";
db.execSQL(insert);
错误: tableMon 在“INSERT INTO tableMon (notes) VALUES (notes=hello)”中没有名为 notes 的列
我尝试在列名附近添加和删除空格并添加变量而不是直接使用表名和列名。 尽管!没有得到任何预期的结果。
您的问题是插入的值是非数字的,因此必须用单引号引起来。所以:-
String insert = "INSERT INTO tableMon (notes) VALUES ('" + values + "' )";
但是,上面的代码容易受到 SQL 注入的影响,所以最好使用:-
String insert = "INSERT INTO tableMon (notes) VALUES (?)";
db.execSQL(insert,new String[]{values};
在这种情况下,当它被 SQLite 绑定绑定时,值将被适当地包含起来。
然而,另一种方法是使用 SQLiteDatabse insert
方法。这样做的好处是
在你的情况下你可以使用:-
ContentValues cv = new ContentValues();
cv.put("notes",values);
long result = db.insert("tableMon",null,cv);