یکی دیگه از راههای این کار استفاده از یک فیلد TimeStamp در جدول است. وقتی که یه سطر از جدول به روز رسانی میشود و یا اضافه میشود SQL Server بطور اتوماتیک این فیلد را تغییر میدهد. خوب ما میتوانیم از این کار برای جلوگیری از همزمانی استفاده کنیم:
برای این کار یک پارامتر از نوع Parameter تعریف کنید که از نوع باینری باشد(داده Timestamp مقادیر باینری را در خود نگه میدارد) باشه:
daUpdateCommand.Parameters.Add(new SqlParameter("@pTimeStamp", SqlDbType.Binary));
daUpdateCommand.Parameters["@pTimeStamp"].SourceVersion = DataRowVersion.Original;
daUpdateCommand.Parameters["@pTimeStamp"].SourceColumn = "TimeStampCol";
SourceVersion: در SqlDataAdapter.UpdateCommand استفاده میشود و مشخص میکند طی بروز رسانی از مقدار فعلی پارامتر استفاده شود یا از مقدار اصلی و اولیه.
DataRowVersion: نسخه DataRow را مشخص میکند. DataRowVersion یک مجموعه است که 4 مقدار Original ، Current ، Proposed و Default را در خود دارد. در کد بالا به دلیل اینکه میخواهیم از مقدار اصلی موجود در جدول استفاده کنیم از Original استفاده میکنیم
SourceColumn : هم ستونی را که باید این پارامتر از آن مقدار بگیرد را مشخص میکند.
هیچ نظری موجود نیست:
ارسال یک نظر