데이터베이스 파일에 문제가 있습니다 데이터베이스 파일을 mydb라는 자산에 추가했습니다. 코드를 실행하면 데이터베이스 파일이 위치하지 않는다는 메시지가 나타납니다. Toast.makeText (this, "No contact found", Toast.LENGTH_LONG) .show();를 호출합니다. 레코드가 반환되지 않기 때문에 호출됩니다. 또한 FileNotFoundException 예외가 없으므로 파일을 찾는 것으로 알고 있습니다. 이것은 Android Application Development book의 예제 양식입니다.레코드가 반환되지 않지만 sqlitebrowser에 데이터가 포함 된 안드로이드 데이터베이스
public class DatabaseActivity extends Activity {
/** Called when the activity is first created. */
TextView quest, response1, response2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView quest = (TextView) findViewById(R.id.quest);
try {
String destPath = "/data/data/" + getPackageName() + "/databases/MyDB";
File f = new File(destPath);
if (!f.exists()) {
CopyDB(getBaseContext().getAssets().open("mydb"),
new FileOutputStream(destPath));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
DBAdapter db = new DBAdapter(this);
//---get a contact---
db.open();
Cursor c = db.getContact(2);
if (c.moveToFirst())
DisplayContact(c);
else
Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show();
db.close();
}
public void CopyDB(InputStream inputStream, OutputStream outputStream)
throws IOException {
//---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
public void DisplayContact(Cursor c)
{
quest.setText(String.valueOf(c.getString(1)));
//quest.setText(String.valueOf("this is a text string"));
}
}
데이터를 업로드하는 더 좋은 방법이 있습니까?
감사합니다. 시도해 보겠습니다. DBAdapter는 다른 예제에서도 사용 했으므로 잘 작동하지 않습니다. DB 파일을 자산에 추가하고 읽을 때 문제가 발생했습니다. 업로드가 잘됩니다. 데이터는 커서로 읽어 들여 XML 레이아웃 파일로 출력 될 수 있습니다. – al23dev
그러나'DBAdapter'는'String destPath = "/ data/data /"+ getPackageName() + "/ databases/MyDB"; (파일 이름과 같은 경우 등). 아마도 리소스 데이터베이스를 다른 파일에 복사하고 있습니까? – stuckless
그것은 테이블의 이름이었습니다. 테이블을 basic_table이라고 불렀고이 didnt가 작동하는 것처럼 보였습니다. 그래서 나는 싫어하는 것을 제거했다. 또한 printStackTrace()를 사용하지 말라고 조언했습니다. 또한 if.exists() 문에 대한 조언을 해주셔서 감사합니다. – al23dev