2014-12-03 35 views
0

如何在android上导入csv到sqlite并列出信息。我是新来的Andorid和一个完整的示例将是巨大的,我理解它是如何工作的,DB赫普勒是我的问题,我不知道如何先设置它发现这样的代码如何在Android上导入csv到sqlite并列出信息

   InputStream is = getAssets().open("textv.csv"); 
       BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

       String line = ""; 
       String tableName ="TABLE_NAME"; 
       String columns = "_id, name, dt1, dt2, dt3"; 
       String str1 = "INSERT INTO " + tableName + " (" + columns + ") values("; 
       String str2 = ");"; 

       db.beginTransaction(); 
       while ((line = buffer.readLine()) != null) { 
        StringBuilder sb = new StringBuilder(str1); 
        String[] str = line.split(","); 
        sb.append("'" + str[0] + "',"); 
        sb.append(str[1] + "',"); 
        sb.append(str[2] + "',"); 
        sb.append(str[3] + "'"); 
        sb.append(str[4] + "'"); 
        sb.append(str2); 
        db.execSQL(sb.toString()); 
       } 
       db.setTransactionSuccessful(); 
       db.endTransaction(); 

,请帮助

回答

0

您是否面临该代码段的任何问题?你最好使用ContentValues而不是StringBuilder。

InputStream is = getAssets().open("textv.csv"); 
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

String line = ""; 
String tableName ="TABLE_NAME"; 
String columns = "_id, name, dt1, dt2, dt3"; 
ContentValues values = new ContentValues(); 
db.beginTransaction(); 
while ((line = buffer.readLine()) != null) 
{ 
    values.clear(); 
    String[] str = line.split(","); 

    values.put ("_id", str[0]); 
    values.put ("name", str[1]); 
    values.put ("dt1", str[2]); 
    values.put ("dt2", str[3]); 
    values.put ("dt3", str[4]); 

    db.insert (tableName, null, values); 
} 

db.setTransactionSuccessful(); 
db.endTransaction(); 

请注意,我还没有添加任何错误处理代码。

+0

我可以得到这一切运行这只是我发现的代码的一部分,但我想看到这个想法的整个概念如何做到这一点 – 2014-12-03 21:38:40