2013-05-15 142 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")); 

或者通过所有的国家只是环......