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

啊,好的,是的,所以我显然用错了。现在有意义了,谢谢!