Android-SQL语法错误
这是我的代码,删除了不相关的内容:Android-SQL语法错误,android,sqlite,Android,Sqlite,这是我的代码,删除了不相关的内容: public class DataManager extends SQLiteOpenHelper { private final static String DB_TABLE = "Nums"; private ContentValues initialValues; private static SQLiteDatabase myDB; public DataManager() { initialV
public class DataManager extends SQLiteOpenHelper
{
private final static String DB_TABLE = "Nums";
private ContentValues initialValues;
private static SQLiteDatabase myDB;
public DataManager()
{
initialValues = new ContentValues();
if(null != myDB)
{myDB.close();}
myDB = getWritableDatabase(); // This causes NullPointerException which is next on my TODO list
}
public void addValues(String num, String val)
{
initialValues.clear();
initialValues.put(num,val);
myDB.insert(DB_TABLE, null, initialValues); // THIS LINE CAUSES ERROR
}
}
我可以创建
数据库,但如果不出现以下错误,我就无法插入
:
android.database.sqlite.SQLiteException:靠近“1”:编译时语法错误:,插入Nums(1)值(?)代码>
数据库表Nums
如下所示:
Num | Val
=========
1 | 23
2 | 34
3 | 6
4 | 3
5 | 5
6 | 56
7 | 34
8 | 45
9 | 32
10 | 23
如您所见,我试图创建一个数据库,其中包含1->n中的数字列表,每个数字旁边都有一个值。数据库中的所有值都是字符串
。有一个原因,我没有选择INT
,但现在记不起来了(
有人能看出我的语法哪里错了吗?
我的手机是根目录,因此我可以使用SQLite浏览应用程序查看数据库,并且创建了表,它只是空的
谢谢。put的语法是ContentValues.put(columnName,value)。请尝试以下代码
public void addValues(String num, String val)
{
initialValues.clear();
initialValues.put("Num",num);
initialValues.put("Val",val);
myDB.insert(DB_TABLE, null, initialValues);
}
正如一些有用的建议,您不需要保存对myDb的引用。您可以始终在SqlLiteOpenHelper中调用getWritableDatabase()。啊,好的,是的,所以我显然用错了。现在有意义了,谢谢!