Xin chào, tôi muốn xuất dữ liệu của mình từ cơ sở dữ liệu ở định dạng CSV cho ứng dụng Android của tôi. Làm cách nào tôi có thể thực hiện việc này? Bất kỳ cơ thể giúp tôi? Cảm ơn trước.Làm thế nào để chuyển đổi bản ghi cơ sở dữ liệu thành tệp csv trong android?
Trả lời
Hi làm như thế này ....
package com.my.CSVcreation;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class CSVCreationActivity extends Activity {
TextView empidtxt,empnametxt,empsaltxt;
EditText empidet,empnameet,empsalet;
Button insetbt,viewbt;
SQLiteDatabase myDatabase=null;
String DataBase_Name="employeedata";
String Table_Name="employeedetails";
Cursor c1,c2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
empidtxt=(TextView)findViewById(R.id.tv1);
empnametxt=(TextView)findViewById(R.id.tv2);
empsaltxt=(TextView)findViewById(R.id.tv3);
empidet=(EditText)findViewById(R.id.et1);
empnameet=(EditText)findViewById(R.id.et2);
empsalet=(EditText)findViewById(R.id.et3);
insetbt=(Button)findViewById(R.id.bt1);
viewbt=(Button)findViewById(R.id.bt2);
try {
myDatabase=this.openOrCreateDatabase(DataBase_Name, MODE_PRIVATE, null);
System.out.println("databse has been creates.....");
myDatabase.execSQL("create table if not exists " + Table_Name + "(empid integer(10),empname varchar(50),empsal integer(10))");
System.out.println("table has been created.....");
c1 = myDatabase.rawQuery("select * from " + Table_Name, null);
c1.moveToFirst();
int count1 = c1.getCount();
System.out.println("columns --->" + count1);
if (count1 == 0) {
myDatabase.execSQL("insert into "+Table_Name+ "(empid,empname,empsal)" +"values(101,'asha',20000)");
System.out.println("data base has been inserted.....");
}
c2 = myDatabase.rawQuery("select * from " + Table_Name, null);
c2.moveToFirst();
int count2 = c2.getCount();
System.out.println("columns --->" + count2);
final int column1 = c2.getColumnIndex("empid");
final int column2 = c2.getColumnIndex("empname");
final int column3 = c2.getColumnIndex("empsal");
insetbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (c2 != null) {
do {
int id = c2.getInt(column1);
String name = c2.getString(column2);
int salary = c2.getInt(column3);
System.out.println("empID --> "+id);
System.out.println("empNAME --> "+name);
System.out.println("empsalalry --> "+salary);
} while(c2.moveToNext());
}
}
});
viewbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
new ExportDatabaseCSVTask().execute("");
} catch(Exception ex) {
Log.e("Error in MainActivity",ex.toString());
}
}
});
}
catch(SQLException ex) { ex.printStackTrace(); }
/*finally {
if (myDB != null) { myDB.close(); }
}*/
}
public class ExportDatabaseCSVTask extends AsyncTask<String, Void, Boolean> {
private final ProgressDialog dialog = new ProgressDialog(CSVCreationActivity.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Exporting database...");
this.dialog.show();
}
protected Boolean doInBackground(final String... args) {
File dbFile = getDatabasePath("myDatabase.db");
System.out.println(dbFile); // displays the data base path in your logcat
File exportDir = new File(Environment.getExternalStorageDirectory(), "");
if (!exportDir.exists()) { exportDir.mkdirs(); }
File file = new File(exportDir, "myfile.csv");
try {
file.createNewFile();
CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
Cursor curCSV = myDatabase.rawQuery("select * from " + Table_Name,null);
csvWrite.writeNext(curCSV.getColumnNames());
while(curCSV.moveToNext()) {
String arrStr[] ={curCSV.getString(0),curCSV.getString(1),curCSV.getString(2)};
// curCSV.getString(3),curCSV.getString(4)};
csvWrite.writeNext(arrStr);
}
csvWrite.close();
curCSV.close();
return true;
} catch(SQLException sqlEx) {
Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
return false;
} catch (IOException e) {
Log.e("MainActivity", e.getMessage(), e);
return false;
}
}
protected void onPostExecute(final Boolean success) {
if (this.dialog.isShowing()) { this.dialog.dismiss(); }
if (success) {
Toast.makeText(CSVCreationActivity.this, "Export successful!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(CSVCreationActivity.this, "Export failed", Toast.LENGTH_SHORT).show();
}
}
}
Và bạn sẽ nhận được CSVReader và tập tin CSVWriter từ trang web sau đây https://code.google.com/p/secrets-for-android/source/checkout. Tất cả là tốt nhất.
Đừng quên để thêm phép file manifest của bạn <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
nơi tệp đã xuất được lưu. có thể bạn cho biết đường dẫn chính xác nơi tệp được lưu trong trình mô phỏng – yogi
Tệp sẽ được lưu trong sdcard của bạn dưới dạng tên đã cho. ví dụ: myfile.csv – malavika
Làm thế nào để viết nó để bất cứ điều gì là đầu vào vào 'empidtet', 'empnameet' và 'expsalet' sẽ hiển thị trong myfile.csv? – PaulH
- 1. Làm thế nào để chuyển đổi tệp cơ sở dữ liệu H2Database thành tệp cơ sở dữ liệu MySQL .sql?
- 2. Chuyển đổi tệp .db cơ sở dữ liệu sang .csv
- 3. Điền vào cơ sở dữ liệu Android Từ tệp CSV?
- 4. Bản ghi Android tồn tại() trong cơ sở dữ liệu?
- 5. Chuyển đổi từ cơ sở dữ liệu/Excel/CSV sang đồ đạc dữ liệu YAML?
- 6. Làm thế nào để chèn dữ liệu vào cơ sở dữ liệu SQLite trong android?
- 7. Chuyển đổi cơ sở dữ liệu Postgres thông thường thành cơ sở dữ liệu không gian
- 8. Làm cách nào để chuyển đổi hàng cơ sở dữ liệu thành cấu trúc, trong Go?
- 9. Làm cách nào để chèn bản ghi từ cơ sở dữ liệu mongo này vào cơ sở dữ liệu khác?
- 10. Cách thay thế tệp cơ sở dữ liệu sqlite hiện có bằng tệp cơ sở dữ liệu mới trong android
- 11. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 12. Làm thế nào để xóa rất nhiều bản ghi từ cơ sở dữ liệu SQL nhanh?
- 13. Làm cách nào để chuyển đổi cơ sở dữ liệu từ định dạng iso thành db3?
- 14. Làm cách nào để sao chép bản ghi dữ liệu giữa hai bản sao của cơ sở dữ liệu SQLServer
- 15. Cách tốt nhất để chuyển đổi cơ sở dữ liệu mysql thành cơ sở dữ liệu sqlite là gì?
- 16. Làm thế nào để thay đổi cơ sở dữ liệu thành postgresql bằng Symfony 2.0?
- 17. Làm cách nào để di chuyển giản đồ cơ sở dữ liệu trong Android?
- 18. Làm thế nào để thay đổi cơ sở dữ liệu MySQL thành UTC?
- 19. Làm thế nào để thay đổi đường dẫn lưu trữ cơ sở dữ liệu Android?
- 20. Làm cách nào để di chuyển Sơ đồ cơ sở dữ liệu SQL Server sang cơ sở dữ liệu khác?
- 21. Cập nhật bản ghi bảng cơ sở dữ liệu trong Zend như thế nào?
- 22. Làm thế nào để sao chép cơ sở dữ liệu trong sử dụng cơ sở dữ liệu khác trong django?
- 23. MySQL: Làm thế nào để biến một cơ sở dữ liệu thành chỉ đọc?
- 24. Làm thế nào để kiểm soát phiên bản cơ sở dữ liệu SQL Server?
- 25. Android đổi tên Cơ sở dữ liệu SQLite
- 26. Thực hiện băm bản ghi cơ sở dữ liệu để theo dõi xem bản ghi đã thay đổi hay không
- 27. Làm cách nào để thay đổi lược đồ thành cơ sở dữ liệu được nhân đôi?
- 28. So sánh hiệu suất để ghi vào MSMQ/tệp văn bản/cơ sở dữ liệu
- 29. Làm thế nào để chuyển đổi một kiểu dữ liệu CLOB thành một String trong Hibernate?
- 30. Cập nhật cơ sở dữ liệu Android
thể trùng lặp của [Chuyển đổi cơ sở dữ liệu db nộp vào .csv] (http://stackoverflow.com/questions/8665057/convert-database-db -file-into-csv) –