c# - sqlite database is locked on insertion -


there's simple code

var insert =      @"insert [files] (      [name],      [fullname],      [md5])      values (@name, @fullname, @md5);"; using (var con = _db.openconnection()) {     using (var cmd = con.createcommand())     {         cmd.commandtext = insert;         cmd.parameters.addwithvalue("@name", item.name);         cmd.parameters.addwithvalue("@fullname", item.fullname);         cmd.parameters.addwithvalue("@md5", item.md5);         cmd.executenonquery();     }  } 

applications hangs time when executing

cmd.executenonquery(); 

and fails exception "database locked". why happening? application not multithreaded. db file just-created.

problem solved. before code there call sqlcommand.executereader(). though connection , command created reader disposed, reader wasn't disposed. after fixing "using(reader)" connection closed , error above disappeared.

in total: datareader can still hold connection if connection , sqlcommand disposed explicitly.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -