문제

.NET Compact Framework 3.5와 함께 SQL Server CE 3.5 및 C#을 사용하고 있습니다. 내 코드에서는 행을 삽입 한 다음 거래를 시작한 다음 테이블에서 해당 행을 삭제 한 다음 해당 트랜잭션에서 롤백을합니다. 그러나 이것은 삭제를 취소하지 않습니다. 왜 안 돼? 내 코드는 다음과 같습니다.

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());

메시지는 롤백이 삭제를 취소하지 않았다는 것을 나타내는 테이블에 카운트가 0 인 끝까지 모든 것이 예상대로 작동한다는 것을 나타냅니다.

도움이 되었습니까?

해결책

방금 Microsoft 포럼에서 답변을 받았습니다. SQLCECOMAND 객체를 SQLCECOMMAND 객체의 트랜잭션 속성을 사용하여 트랜잭션과 연결해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top