2013-05-15 143 views
1

有沒有一種更簡單的方法,我可以在SQLite中的表中插入數據?我需要的是在表tblState中插入State_ID和State_Name。由於美國有很多州,是否有另一種方式可以用來代替這種方式:插入值到SQLite數據庫

String ROW1 = "INSERT INTO tblState VALUES (1,'Alabama')"; 
String ROW2 = "INSERT INTO tblState VALUES (2,'Alaska')"; 
String ROW3 = "INSERT INTO tblState VALUES (3,'California')"; 
db.execSQL(ROW1); 
db.execSQL(ROW2); 
db.execSQL(ROW3); 

謝謝!

+0

你可以嘗試像這樣...在數組中有狀態。在for循環中執行單個插入語句,直到這個狀態數組完成。 – Subburaj

+0

您可以在一個字符串中連接所有'INSERT',然後執行一個'db.execSQL' –

+0

Subburaj我該怎麼做?對不起,我只是新的做法。謝謝! – dolphinately

回答

1

試試這個..

String state[] = { "state1" , "state2",.............}; 
    int id=1; 
    for(int i=0;i<state.length;i++) 
    { 
    db.execSQL("INSERT INTO tblState VALUES (id,state[i])"); 
    id++; 
    } 
+0

謝謝Subburaj!很好的幫助。 :) – dolphinately

+0

Upvote並接受答案,如果它幫助你,.. .. – Subburaj

0

你可以做到以下幾點:

String ALLROWS = "INSERT INTO tblState" 
    + "SELECT 1 AS 'State_ID', 'Alabama' AS 'State_Name'" 
    + "UNION SELECT 2 AS 'State_ID', 'Alaska' AS 'State_Name'" 
    + "UNION SELECT 3 AS 'State_ID', 'California' AS 'State_Name'"; 

db.execSQL(ALLROWS); 
0

您應該爲每個要插入的行使用ContentValues

ContentValues values = new ContentValues(); 
values.put('State_ID', 1); 
values.put('State_Name', "Alabama"); 

,然後用db.insert("tblState", null, values)插入行。你可以寫一個方法來構建你的ContentValues:

public ContentValues method(int id, String name) { 
    ContentValues values = new ContentValues(); 
    values.put('State_ID', id); 
    values.put('State_Name', name); 
} 

您的代碼將是:

db.insert("tblState", null, method(1, "Alabama")); 
db.insert("tblState", null, method(2, "Alaska")); 
db.insert("tblState", null, method(3, "California")); 

或者通過所有的國家只是環......