SQLite数据库不接受超过1000行?

4
我正在编写一款Android应用程序。我正在从txt文件中解析行,并将每行数据插入到SQLite数据库中。但是,插入过程在1000个条目处停止。虽然有超过3000个条目,但插入过程在1000个条目处停止了。出了什么问题?
编辑:这里是代码:
try{
            InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt");
            InputStreamReader iz=new InputStreamReader(is);
            BufferedReader br = new BufferedReader(iz);
            ContentValues values = new ContentValues();
            while((line=br.readLine())!=null) {
            StringTokenizer stringTokenizer = new StringTokenizer(line, "<");
            String firstNumber="";
            String strfinal="";
              **//code which gives values to strfinal and firstNumber excluded
              values.put(KEY_NAME, firstNumber); // Contact Name
              values.put(KEY_PH_NO,strfinal); // Contact Phone

              // Inserting Row

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




   }catch(Exception e){Log.d("yeah error is"+e,"twitch12");}

Android的readLine()方法如何处理txt文件中仅包含回车符或换行符的行?该行是“”还是null? - Tim
@tim 我猜你在谈论文件结束。它应该是 null 而不是 ""。 - Ankit Rawat
我的意思是行尾。有没有可能文本文件包含一个“空白”行(除了行尾字符外什么都没有),而readLine()方法将其解析为NULL? - Tim
@tim 不,这行没有问题,我从该行上面删除了两行并运行了应用程序,现在第1000个条目是在有问题的行下面2行,所以该行本身没有问题。 - Ankit Rawat
如果您正在使用诸如“sqlite_database_browser”之类的工具检查数据,请确保观察下一页按钮以查看下一页上可用的更多数据。 - Mehul Joisar
2个回答

1

步骤:

  • 打开SQLiteStudio
  • 选择工具 > 打开配置对话框 > 数据浏览
  • 在数据浏览中,您将看到每页数据行数,现在选择所需大小。

我有与您相同的问题,我将数字1000更改为2000,它就像魔术般地解决了问题。希望它也能解决您的问题。


1

出了什么问题?

我猜可能有点奇怪。问题可能与文件或数据库有关。

你考虑过使用 TRANSACTION 吗?它可能解决你的问题。最近我使用数据库,正常情况下插入了100,000行(但肯定是在事务中),因为没有事务,你的操作将需要很长时间。

所以,我的建议是将你的代码封装到事务中,读写将会花费更少的时间,并且应该能够解决问题。

伪代码:

try {
   db.begiTransaction();
   ...
   // your work with file and inserting
   db.setTransactionSuccessful();
   ...
}
finally {
   if (db.inTransaction()) {
      db.endTransaction();
   }
}

更新:

请查看文件中的第1000行并告诉我。


谢谢你的回答。我尝试了你建议的方法,但仍然在1000个条目处停止了。 - Ankit Rawat
就像其他的一样。我认为这不是文件的问题,因为这一行和其他所有行都一样,而且1000太圆了,肯定是sqlite或数据库的问题。 - Ankit Rawat
@user2213396 嗯,有任何错误吗?尝试先从文件中读取,将值保存到列表中,然后执行插入操作。 - Simon Dorociak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接