My Windows 7 version of bitcoin-qt suddenly crashed while syncing with the error message "*** System error: Database Corrupted". Now each time I try to open the program, I get the same error and it immediately closes. Below is a dump from debug.log. Does anyone know how I can fix this? (Hopefully without doing a full reinstall and re-downloading the entire blockchain all over again.)
Bitcoin version v0.8.1-beta (2013-03-17 15:35:36 -0400)
Using OpenSSL version OpenSSL 1.0.1c 10 May 2012
Startup time: 2013-04-02 23:24:27
Default data directory C:\Users\BZ\AppData\Roaming\Bitcoin
Used data directory C:\Users\BZ\AppData\Roaming\Bitcoin
Using 4 threads for script verification
init message: Verifying wallet integrity...
dbenv.open LogDir=C:\Users\BZ\AppData\Roaming\Bitcoin\database ErrorFile=C:\Users\BZ\AppData\Roaming\Bitcoin\db.log
Bound to [::]:8333
Bound to 0.0.0.0:8333
init message: Loading block index...
Opening LevelDB in C:\Users\BZ\AppData\Roaming\Bitcoin\blocks\index
Opened LevelDB successfully
Opening LevelDB in C:\Users\BZ\AppData\Roaming\Bitcoin\chainstate
Opened LevelDB successfully
LoadBlockIndex(): last block file = 11
LoadBlockIndex(): last block file: CBlockFileInfo(blocks=256, size=46153726, heights=228582..228837, time=2013-03-29..2013-03-30)
LoadBlockIndex(): transaction index disabled
LoadBlockIndex(): hashBestChain=000000000000000c8708f0ae43cfa76aa3ec8f38037c15e1e3534641b769ddd1 height=228835 date=2013-03-30 23:14:33
init message: Verifying block database integrity...
Verifying last 288 blocks at level 3
No coin database inconsistencies in last 108 blocks (36374 transactions)
block index 12574ms
init message: Loading wallet...
nFileVersion = 80100
wallet 2449ms
init message: Rescanning...
Rescanning last 297 blocks (from block 228538)...
rescan 2231ms
init message: Importing blocks from block database...
LevelDB read failure: Corruption: block checksum mismatch
*** System error: Database corrupted
init message: Loading addresses...
Loaded 15984 addresses from peers.dat 62ms
RandAddSeed() 168932 bytes
mapBlockIndex.size() = 228857
nBestHeight = 228835
setKeyPool.size() = 100
mapWallet.size() = 480
mapAddressBook.size() = 65
send version message: version 70001, blocks=228835, us=0.0.0.0:0, them=0.0.0.0:0, peer=127.0.0.1:0
init message: Done loading
AddLocal([2001:0:9d38:953c:3034:504:e770:bbd7]:8333,1)
ThreadIRCSeed started
ThreadIRCSeed exited
ThreadSocketHandler started
ThreadMessageHandler started
ThreadDNSAddressSeed started
Loading addresses from DNS seeds (could take a while)
ThreadDumpAddress started
ThreadOpenConnections started
ThreadOpenAddedConnections started
socket error accept failed: 10038
socket select error 10038
EnvShutdown exception: Invalid argument (22)