나는 다른 ID를 사용하여 sqlite 데이터베이스에서 데이터를 검색 해야하는 앱을 개발 중입니다. 많은 작업을 수행했지만 CSV 파일을 만들 때 CSV 파일을 얻는 것처럼 모든 ID와 함께 열 이름도 얻습니다. 이 유형
이 코드를 사용하고 있습니다
public void getData() {
File dbFile = getDatabasePath("formantime.db");
SQLITEDBTABLE dbhelper = new SQLITEDBTABLE(getApplicationContext());
File exportDir = new File(Environment.getExternalStorageDirectory(), "");
if (!exportDir.exists()) {
exportDir.mkdirs();
}
file = new File(exportDir, "FTSData.csv");
try {
file.createNewFile();
CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
SQLiteDatabase db = dbhelper.getReadableDatabase();
for (String ids : TimeEntryListViewAdapter.emailintArrayList) {
curCSV = db.rawQuery("SELECT * FROM RecordsTable WHERE RecordId ='" + ids + "'", null);
csvWrite.writeNext(curCSV.getColumnNames());
if (curCSV.moveToFirst()) {
do {
//Which column you want to exprort
String[] arrStr = {curCSV.getString(0), curCSV.getString(1), curCSV.getString(2), curCSV.getString(3),
curCSV.getString(4), curCSV.getString(5), curCSV.getString(6)};
csvWrite.writeNext(arrStr);
} while (curCSV.moveToNext());
}
curCSV.close();
}
csvWrite.close();
} catch (Exception sqlEx) {
Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
}
Uri u1 = null;
u1 = Uri.fromFile(file);
String[] emails;
ArrayList<String> mails = EmailReportsAdapter.emailsList;
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/richtext");
sendIntent.putExtra(Intent.EXTRA_EMAIL, mails.toArray(new String[mails.size()]));
sendIntent.putExtra(Intent.EXTRA_STREAM, u1);
try {
startActivity(Intent.createChooser(sendIntent, "Sending mail.."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(EmailReports.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
TimeEntryListViewAdapter.emailintArrayList.clear();
}
}
제발 도와주세요
새 ID를 찾을 때마다 열 이름을 작성하기 때문입니다.
여기에서는 열 이름을 동적으로 가져와야한다고 가정 했으므로 더미 항목을 가져 왔습니다.
curCSV = db.rawQuery("SELECT * FROM RecordsTable WHERE RecordId ='1'", null);
이렇게 해보세요.
try {
file.createNewFile();
CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
SQLiteDatabase db = dbhelper.getReadableDatabase();
/* fetch a dummy entry */
curCSV = db.rawQuery("SELECT * FROM RecordsTable WHERE RecordId ='1'", null);
csvWrite.writeNext(curCSV.getColumnNames()); // write column names only once.
for (String ids : TimeEntryListViewAdapter.emailintArrayList) {
curCSV = db.rawQuery("SELECT * FROM RecordsTable WHERE RecordId ='" + ids + "'", null);
if (curCSV.moveToFirst()) {
do {
//Which column you want to exprort
String[] arrStr = {curCSV.getString(0), curCSV.getString(1), curCSV.getString(2), curCSV.getString(3),
curCSV.getString(4), curCSV.getString(5), curCSV.getString(6)};
csvWrite.writeNext(arrStr);
} while (curCSV.moveToNext());
}
curCSV.close();
}
csvWrite.close();
} catch (Exception sqlEx) {
Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다