rowversion으로 사용되는 데이터베이스에 타임 스탬프 열이 있습니다. 데이터베이스에서 데이터를 가져올 때 우리는 rowversion을 얻었고,이 rowversion을 byte []로 변환했습니다. 이 단계까지는 모든 것이 예상대로 작동합니다.timestamp에 byte []하는 방법
데이터를 업데이트 할 때 나는 (저장 프로 시저에서) rowversion이 동일하거나 아닌지 확인하고 싶습니다. 이는 데이터베이스에 저장된 것과 코드에서 전달되는 것과 비교됩니다 . 다른 경우 업데이트를 중단하고 그렇지 않으면 데이터를 업데이트합니다.
내 문제는, 바이트 [] 저장 프로 시저로 전달하는 방법입니다. 저장 프로시 듀어의 매개 변수 유형은 시간 소인입니다.
참고 : 나는 엔터프라이즈 라이브러리를 사용하여 모든 db 작업을 C#으로 만듭니다. 저장 프로 시저 또는 데이터 유형을 변경할 수 없습니다. 그것의 제한된. 아래
바이트 타임 스탬프 형식이란 무엇입니까? 아니면, 타임 스탬프가 처음에 byte []가되는 방법은 무엇입니까? 아마 [this] (https://stackoverflow.com/questions/10107625/6-bytes-timestamp-to-datetime)입니까? – john
타임 스탬프 구문이 사용되지 않습니다. 이 기능은 이후 버전의 Microsoft SQL Server에서 제거 될 예정입니다. 새로운 개발 작업에서는이 기능을 사용하지 말고 현재이 기능을 사용하는 응용 프로그램을 수정하십시오. https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql – Aaron
@john 나는 row_version을 다음과 같이 바이트 배열로 변환하는 datarow를 얻습니다. dr [ "row_version "] == DBNull.Value? 새로운 바이트 [1] : (byte []) dr [ "row_version"]; – user2645738