Хм. Как-то, помню, форма диалога, а, возможно, и МессаджБокс приводили к прерыванию транзакции. Попробуй сделать try .. catch и посмотри - возможно, он в catch выскакивает. И еще одна возможная трабла: обрати внимание, что в это время ничего е блокируется. А то пока пользователь курит, а на окошке у него висит "создавать да/нет" таблица может быть заблокирована. Но это так, маленькое примечание. В 4ке рулится
Георгий