2014-02-13 3 views
2

Я пытаюсь вставить значение в базу данных SQLite. У меня есть две таблицы в базе данных, но значение не вставлено в мою вторую таблицу i.e mynum. Я использовал те же коды для вставки в первую таблицу, но не работает для второй таблицы. Как я могу это исправить? Вот мой кодКак вставить данные в таблицу в android с помощью sqlite?

Databasehandler.java

public class Databasehandler extends SQLiteOpenHelper{ 
    private static final String LOGCAT = null; 

    public Databasehandler(Context applicationcontext) { 
     super(applicationcontext,"androidsqlite.db", null, 4); 
     // TODO Auto-generated constructor stub 
     Log.d(LOGCAT,"Database Created"); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     String query,query1;  
     query = "CREATE TABLE userlogin (phoneId INTEGER PRIMARY KEY, 
            username TEXT,userid INTEGER,contacts INTEGER)"; 

     query1 = "CREATE TABLE mynum (Id INTEGER PRIMARY KEY,num INTEGER)"; 
     db.execSQL(query1); 
     db.execSQL(query); 
     //db.execSQL(query1); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     String query,query1; 
     query = "DROP TABLE IF EXISTS userlogin"; 
     query1 = "DROP TABLE IF EXISTS mynum"; 
     db.execSQL(query); 
     db.execSQL(query1); 
     onCreate(db); 
    } 

    public void communityfragment(HashMap<String, String> queryvalues) { 
     // TODO Auto-generated method stub 
     SQLiteDatabase database = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put("num",queryvalues.get("number")); 
     database.insert("mynum", null, values); 
     database.close(); 
    } 

А вот мой CommunityFragment.java класс

public class CommunityFragment extends Fragment { 
    HashMap<String, String> d=new HashMap<String, String>(); 
    d.put("number",f); 
    //nameValuePairs.add(new BasicNameValuePair("email","abc")); 
    Toast.makeText(getActivity(),"incommunityfragment"+d,Toast.LENGTH_LONG).show(); 
    db.communityfragment(d); 

} 
+0

вы получаете любую ошибку ??? –

+0

Исправьте углубление, пожалуйста. – doorstuck

+0

У меня нет ошибки, проблема в том, что я думаю, что функция communityfragment не получает вызов – user3256145

ответ

1

ваше второе поле тип данных INTEGER и вы передаете ему строку. исправьте это.

вы определяете Num как целое

CREATE TABLE mynum (Id INTEGER PRIMARY KEY,num INTEGER) 

но вы даете ему строку.

+0

Не имеет значения. Типы столбцов в sqlite - это просто предложения; любой столбец может содержать любой тип данных. – laalto

+0

@ laalto..thanks для исправления .. :) –

Смежные вопросы