2016-03-30 20 views
0

bu hata ne anlama geldiğini endam sorun yaşıyorum: SQLiteLog: (1) yakın "s": Çoğunlukla sözdizimi hatası çünkü can' Veritabanını kapatıyor.SQLite Veritabanı Hatası: SQLiteLog: (1) yakın "s": sözdizimi hatası

Ben bir film veritabanı inşa ediyorum android uygulaması ve benim ham dizinde sahip veritabanı dosyası aynı kalır ve ben DB bu yapıyı çözmek için çalışıyor.

OMDB API kullanırken, filmler yerel veritabanıma eklenir ve bazılarını kullanmayacaktır.

ben eklemek için kullanıyorum komut şöyledir:

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); 

Bir his var bunu yapmak zorunda olacak sonunda boş benim veritabanında ben eğer ben düşündüm kendi kendine artan kimliğine sahip olduğundan null geçti, sadece bir değer atadı.

Herhangi bir fikir çok takdir edilecektir!

+0

takip '), null;';... 'Bu) için noktalı ve' null' –

+0

çıkarın, tam sayı birincil anahtar varsayarak boş kimliği (olabilen özel bir değere ayarlar – MikeT

+0

Tek tırnaklı bir değerden çıkıp, dizelerinizden biriyle sorunlara neden olan bir değer olabilir mi? – lodlock

cevap

1

SQLITE'ye satır eklemek için önerilen yöntem, sorgu yürütmekten daha iyi olan içerik değerlerini kullanmaktır. aşağıdaki Örnek, burada

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

'demeniz gerekir. Bu sabit, teşekkürler! ya da herkes neden benim neden bazı filmler için çalıştı ve neden diğerleri biliyordu ama sizin için tüm yol çalıştı? – Babbz77

+0

db.insert() yöntemindeki ikinci argüman bu sihir yapar. Daha iyi burada dokümanlar açıkladı. doc http://developer.android.com/intl/es/reference/android/database/sqlite/SQLiteDatabase.h tml – Thahaseen

+0

Aw, oldukça anlamlıdır, bazı değerler boştur ve orta boş değer (NullColumnHack olarak adlandırılır), null olarak verilmeyen özniteliklere izin verir. Bu yüzden bazı ekler işe yaramıştı ve bazıları, reddedilenlerin null değerlere sahip olmadıkları/değerlenmemiş değerlerden ötürü olmadığından dolayı olmadı. Tekrar teşekkürler @Thahaseen! – Babbz77