【问题标题】:How to read data from a SQLite database table?如何从 SQLite 数据库表中读取数据?
【发布时间】:2012-06-27 17:50:14
【问题描述】:

我有一个数据库表,我的目标是读取数据表中的每个值,然后将它们写入文本文件以通过电子邮件发送。我应该怎么做呢?

public void FileWrite()
{
    Cursor remindersCursor = mDbHelper.fetchAllReminders();
    startManagingCursor(remindersCursor);

    try
    { // catches IOException below
        String[] from = new String[]{RemindersDbAdapter.KEY_TITLE};
        final String TESTSTRING = new String(RemindersDbAdapter.KEY_TITLE + "   ");
        File sdCard = Environment.getExternalStorageDirectory();
        File myFile = new File(sdCard, "test");
        FileWriter writer = new FileWriter(myFile);
        writer.append(TESTSTRING);
        writer.flush();
        writer.close();


        Toast.makeText(TaskReminderActivity.this, "Program Successfully went through  FileWrite!", Toast.LENGTH_LONG).show();
    } catch(Exception e)
    {
          Toast.makeText(TaskReminderActivity.this, "Had Problems with file!", Toast.LENGTH_LONG).show();
          Log.e("FileWrite", "Had Problems with file!", e);
    }
}

【问题讨论】:

  • @Sam 好吧,我是新手,所以我不确定从哪里开始。我想我会创建一个循环来读取数据库的所有值,但我不确定如何尝试这种逻辑背后的代码哈哈。如果您不介意给我一点反馈,我将发布我目前阅读的文件的编辑。
  • 太棒了,当您在问题中提供更多详细信息时,您更有可能得到可行的答案。那么,这行得通吗?您的 SD 卡上是否有一个名为“test”且包含相应内容的文件?
  • @Sam 现在一切正常,感谢 Chintan Ragwani 提供的链接

标签: android database sqlite file-io filereader


【解决方案1】:

第一次从你的 sqllite 数据库中读取:

Cursor  cursor = db.rawQuery("SELECT * FROM " +TBL_NAME+" " ,null);
startManagingCursor(cursor);
 while(cursor.moveToNext()){

                    stringBuffer.append(cursor.getString(1)).append(";");

          }
......

下一张写在卡片上:

  try {
        File myFile = new File("/sdcard/file.txt");
        myFile.createNewFile();
        FileOutputStream fOut = new FileOutputStream(myFile);
        OutputStreamWriter myOutWriter = 
        new OutputStreamWriter(fOut);
        myOutWriter.append(stringBuffer.toString());
        myOutWriter.close();
        fOut.close();
        Toast.makeText(getBaseContext(),
                "Done writing SD 'mysdfile.txt'",
                Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Toast.makeText(getBaseContext(), e.getMessage(),
                Toast.LENGTH_SHORT).show();
    }

....

确保您在清单文件中设置了权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

【讨论】:

    【解决方案2】:

    只是一个简单的例子。希望你能轻松上手

    http://android-er.blogspot.in/2011/06/simple-example-using-androids-sqlite_02.html

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多