我有一个从Sqlite浏览器导出的csv文件,其中包含一个表,并且已将其放在sdcard中.我希望我可以以编程方式导入到我的android apps数据库中,我尝试了很多
但未能得到任何帮助将不胜感激.我在android中创建了相同的tabe,但是我不想通过从csv文件中逐行读取内容并每次执行查询插入操作来执行此操作,因此要点是直接导入
嘿,我已经看过这段代码
public static void InsertCSVFile(String FilePath, String filename,
String TableName) {
try {
FileReader fr = new FileReader(new File("mnt/sdcard/",
"olinecsv.csv"));
BufferedReader br = new BufferedReader(fr);
String data = "";
String tableName = "Test";
String columns = "ID,NAME,TYPE";
String InsertString1 = "INSERT INTO " + tableName + " (" + columns
+ ") values(";
String InsertString2 = ");";
mainDatabase.beginTransaction();
while ((data = br.readLine()) != null) {
StringBuilder sb = new StringBuilder(InsertString1);
String[] sarray = data.split(",");
sb.append(sarray[0] + ",");
sb.append( sarray[1] + ",");
sb.append(sarray[2]);
sb.append(InsertString2);
if(sarray[0].contains("ID"))
continue;
mainDatabase.rawQuery(sb.toString(), null);
//mainDatabase.execSQL(sb.toString());
}
我已经将该文件放在sdcard中,并且我正在获取查询StringBuilder,但由于错误或异常而来,并且没有在表中输入任何内容,但是,调试我在Sqlite程序中运行的同一查询时,
看到我在做错误和错误的建议将不胜感激
解决方法:
没有内置的CSV导入功能供您使用:您将需要逐行读取CSV文件并将其插入.有许多CSV解析程序(我个人使用OpenCSV),它们可以很好地读取磁盘上的CSV文件并提取行.如果您在编写有效的插入函数时遇到问题,请提出问题并包含您的代码.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!