I suspect you are looking at a schema lock here. Committing DML operations will release row locks but if the statement remains prepared then a schema lock is retained. The Command object will probably need to be freed via a Dispose( ) to release that. Of course closing the connection will also accomplish that.

Schema locks only prevent DDL operations on those objects and can usually be ignored unless you alter your tables frequently enough for this to be an administrative barrier.