我試圖在sqllite數據庫中使用beginTransaction()時讀取excel文件,但我面臨一些問題得到錯誤數據庫被鎖定sql lite交易鎖定
這是我的編輯。 注意到我使用這個代碼五個時間插入5個Excel文件
代碼:
dbHandler.open();
try {
url = new URL(
"http://ictfox.com/Hafil_Updates/ImportExcel/schoolmaster.csv");
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream(), "Windows-1256"));
while ((line = in.readLine()) != null) {
String[] insertValues = line.split(",");
if (flag_is_header) {
dbHandler = new MySQLiteHelper(context);
long row = dbHandler.insertSchoolMaster(insertValues[0],
insertValues[1], insertValues[2], insertValues[3],
insertValues[4], insertValues[5]);
Log.e("no. of rows inserted", "" + row);
} else {
flag_is_header = true;
}
}
dbHandler.setsucss();
in.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
dbHandler.end();
dbHandler.close();
}
return line;
}
public void open()
{
sqliteDB=this.getWritableDatabase();
sqliteDB.beginTransaction();
}
public void setsucss() {
sqliteDB.setTransactionSuccessful();
}
// Close Database
public void end() {
sqliteDB.endTransaction();
}
發表您的logcat和格式化你的代碼。 –
你有很多線程訪問數據庫嗎? – Merlevede
5個方法在關閉後一個接一個地訪問數據庫 – user3245658