2010-12-21 11 views
19

जब मैं अपने SQLite डेटाबेस में एक डालने कर मुझे लगता है कि अपवाद हो रही हैSQLiteConstraintException: त्रुटि कोड 19: बाधा में विफल रहा है

निम्नलिखित कोड मुझे अपवाद देता है:

mDbHelper.createUser("pablo","a","a","a","a"); 

mDbHelper से कोड (MyDbAdapter):

private static final String USER_TABLE_CREATE = "CREATE TABLE user (email varchar, password varchar, fullName varchar, mobilePhone varchar, mobileOperatingSystem varchar, PRIMARY KEY (email))"; 

public long createUser(String email, String password, String fullName, String mobilePhone, String mobileOperatingSystem) 
    { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("email",email); 
     initialValues.put("password",password); 
     initialValues.put("fullName",fullName); 
     initialValues.put("mobilePhone",mobilePhone); 
     initialValues.put("mobileOperatingSystem",mobileOperatingSystem); 
     return mDb.insert("user", null, initialValues); 
    } 

अपवाद अंतिम पंक्ति पर बनाई गई है: return mDb.insert("user", null, initialValues);

उत्तर

39

आप डुप्लिकेट email डाल रहे हैं। भले ही आप इसे इस्तेमाल नहीं करते

सुझाया गया तरीका ही, प्राथमिक कुंजी के रूप में एक _ID स्तंभ है। भविष्य में उपयोगों पर इस तरह, एडाप्टर या सूची में उपयोग की तरह, आपको कामकाज नहीं करना पड़ेगा।

+0

नहीं, मैं नहीं कर रहा हूँ, डेटाबेस खाली है, और पाब्लो पहला ईमेल मैं उस पर डालने रहा है .... – NullPointerException

+0

दोबारा जांच करके फिर से, आप कुछ वहाँ याद किया। यह खाली नहीं होना चाहिए। – Pentium10

+0

ओह हाँ आप सही कर रहे हैं, मानों मैं डाला स्थायी रूप से सहेज लिए जाते हैं, हर बार जब मैं अपने ऐप का परीक्षण कर रहा हूँ मैं एक मूल्य है कि वर्तमान में डेटाबेस पर सहेजा गया है जोड़ने की कोशिश कर रहा हूँ ... मैं जानता हूँ कि हमारा इस तरह .... और मैं प्रत्येक ऐप को खोलने के लिए डेटाबेस को कैसे साफ कर सकता हूं? – NullPointerException

संबंधित मुद्दे