我的應用程序需要從一個鏈接下載一個數據庫,繼承人我用它來下載數據庫ADN將其保存在SD卡上的代碼:麻煩在下載SQLite數據庫
public void DownloadBD() {
try {
URL url = new URL(
"http://mylink/dbHandler.axd?SqliteDbVersion=0");
HttpURLConnection urlConnection = (HttpURLConnection) url
.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
File SDCardRoot = Environment.getExternalStorageDirectory();
File file = new File(SDCardRoot, "DirLaguna.db");
FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = urlConnection.getInputStream();
int totalSize = urlConnection.getContentLength();
int downloadedSize = 0;
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ((bufferLength = inputStream.read(buffer)) > 0) {
fileOutput.write(buffer, 0, bufferLength);
downloadedSize += bufferLength;
}
fileOutput.close();
location = file.getAbsolutePath();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
一切似乎都做工精細,但此刻我想查詢數據庫(我正在使用原始查詢),出現一個錯誤,表示這些表不存在。
之後,我嘗試調試應用程序,之後,我得到錯誤說數據庫已損壞。我認爲下載過程是造成數據庫損壞的原因。
任何幫助將被折衷,如果我錯過了一些代碼分享請告訴我!
在此先感謝!
你的教程是好的,問題是你修改表,然後將它添加到應用程序,我需要先添加它,然後修改,我仍然會嘗試這種方法,謝謝! – CarlosT
對遲到的歉意抱歉,不,我們不會修改和添加,而只是相反。我們不能直接使用數據庫。您將需要在您的apk中以編程方式複製它,因爲您不能直接與db文件交互並修改內容。它需要成爲應用程序的一部分,以便Android可以爲您提供SQLite Apis,以便您可以運行查詢。另外,請考慮Romins的第二個鏈接。它會清除你的疑惑 – iabhi