靠近" /" Android中的语法错误

时间:2016-09-16 02:10:27

标签: android sqlite

我项目中的下面代码调用我的数据库类中的一个函数,将两个值插入到我的sqlite数据库中

    saveButton = (Button) findViewById(R.id.Save);
    saveButton.setOnClickListener(new View.OnClickListener( ) {
        @Override
        public void onClick(View v) {
            addCig = (EditText) findViewById(R.id.cigName );
            myDbHelper1.insertNewCig(addCig.toString(), fileName );     
        }
    });

这是插入功能。我收到的错误是读取(接近" /":语法错误)。任何人都可以帮我看看它,看看我的代码有什么问题。

public void insertNewCig(String name, String file)
{
    //DB_PATH = "/data/data/com.example.newdb/databases/"
    //DB_NAME = "cigarettes"
    String myPath = DB_PATH + DB_NAME;
    String row1 = "INSERT INTO " + myPath + " (" + KEY_FIRST + ", " +  KEY_LAST + ") VALUES(" + name + ", " + file + ")";
    myDataBase.execSQL(row1);

}

1 个答案:

答案 0 :(得分:1)

myPath应该是数据库中表的名称,而不是数据库文件的名称和路径。您还需要在插入的值周围添加单引号,否则SQLite不会识别它们是文字字符串值而不是其他内容(例如列名称)。这是不尝试在代码中手动构建原始SQL语句的众多原因之一。

由于您有SQLiteDatabase,因此您也可以使用insert()方法代替execSQL()。在这种情况下,你会给它一个ContentValues而不是构造一个原始语句,这样就不需要用单引号包装字符串值。

ContentValues values = new ContentValues();
values.put(KEY_FIRST, name);
values.put(KEY_LAST, file);
myDataBase.insert(TABLE_NAME, null, values);