SQL Server CE rollback não desfaz de exclusão
-
06-07-2019 - |
Pergunta
Estou usando o SQL Server CE 3.5 e C # com o .NET Compact Framework 3.5. No meu código eu estou inserindo uma linha, em seguida, iniciar uma transação, em seguida, excluir essa linha de uma tabela, e depois fazer uma reversão nessa transação. Mas isso não quer desfazer a exclusão. Por que não? Aqui está o meu código:
SqlCeConnection conn = ConnectionSingleton.Instance;
conn.Open();
UsersTable table = new UsersTable();
table.DeleteAll();
MessageBox.Show("user count in beginning after delete: " + table.CountAll());
table.Insert(
new User(){Id = 0, IsManager = true, Pwd = "1234", Username = "Me"});
MessageBox.Show("user count after insert: " + table.CountAll());
SqlCeTransaction transaction = conn.BeginTransaction();
table.DeleteAll();
transaction.Rollback();
transaction.Dispose();
MessageBox.Show("user count after rollback delete all: " + table.CountAll());
As mensagens indicam que tudo funciona como esperado até o fim, onde a tabela tem uma contagem de 0 indicando a reversão não desfazer a exclusão.
Solução
Eu só tenho ele respondeu no forum da Microsoft. Você precisa associar o objeto SqlCeComand com a transação usando a propriedade Transaction do objeto SqlCeCommand.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow