2016-03-30 8 views
0

このエラーの意味を理解できません: SQLiteLog:(1)sの近くに:構文エラー ほとんどの場合、実行中のデータベースを見つける。私は映画データベースアンドロイドアプリと私は私の生のディレクトリを持っているデータベースファイルを構築していますSqliteデータベースエラー:SQLiteLog:(1)sの近くに:構文エラー

は同じまま、私はビルドがこの問題を解決するためのオフに実行されているDBを見つけることができません。

映画は私のローカルデータベースに追加されますと、一部がないようにOMDB APIを使用して。

私は追加するには使用しているコマンドは次のとおりです。

MovieDB db = new MovieDB((Context) this); 
SQLiteDatabase movDB = db.openDB(); 
String insert = "insert into movies values('" + movie.title + "','" + movie.year + "','" + movie.rated + "','" + movie.released + "','" + movie.runtime + "','" + movie.genre + "','" + movie.actors + "','" + movie.plot + "',null);"; 
movDB.execSQL(insert); 

私が感じていることが関係しているでしょう末尾のヌル私のデータベースに私は私が私場合考え出し自己インクリメントIDを持っているので、 nullを渡すと、値を代入するだけです。

洞察力があれば幸いです! SQLiteのに行を挿入する

+0

時計 ')、NULL;";。。。 'これは)ので、セミコロンと' null'なので –

+0

削除、整数主キーを仮定ヌルID(のものとすることができる一意の値に設定されます。 – MikeT

+0

あなたの文字列の1つに問題を引き起こす、エスケープされていない単一引用符を持つ値が原因である可能性がありますか? – lodlock

答えて

1

推奨される方法は、クエリを実行するよりも優れているcontentvaluesを使用することです。以下の例では、ここで

public void addMovie(String title, int year){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put("title", title); 
     values.put("year", year); 
     db.insert(TABLE_MOVIES, null, values); 
     db.close(); 
    } 
+0

で置き換えるべきだと思います。何人かの映画のために働いていたが、他の人のために働いていなかったが、あなたのやり方がすべての人にとってうまくいった理由を知っている人はいないか? – Babbz77

+0

db.insert()メソッドの第2引数は、 doc http://developer.android.com/intl/es/reference/android/database/sqlite/SQLiteDatabase.h tml – Thahaseen

+0

Awはいくつかの値がヌルであることを意味し、中間のヌル値(NullColumnHackと呼ばれる)はヌルでない属性を許可します。したがって、拒否されたものは、NULL値/アドレス指定されていない値を持つ必要があるため、一部の挿入が機能する理由としなかったものがありました。 もう一度お返事ありがとうございます。 – Babbz77

関連する問題