PDA

View Full Version : سوال: قفل کردن یک رکورد با سی شارپ



jaleel2007
شنبه 02 خرداد 1394, 12:03 عصر
با سلام
من یک دیتابیس شامل چند تیبل دارم. که برای ورود اطلاعات استفاده میشود. نرم افزار تا امروز یک یوزر داشت ولی گزارشات آن را چند نفر استفاده می کردند.
حالا نفرات ورود اطلاعات تعدادشان زیاد شده و چون رکوردها را قفل نمی کنه یک شماره چندبار مورد استفاده قرار می گیرد. یعنی که مثلا یک نفر یک شماره جدید می گیرد تا ورود اطلاعاتش تمام نشده اگر شخص دیگری شروع کند آنوقت اطلاعات آن ها قاطی می شود.
چکار کنم؟

نرم افزار با سی شارپ
بانک اسکوئل سرو 2008
5 تا تیبل شامل نام افراد - صورت حساب - سفارش

winner1
شنبه 02 خرداد 1394, 14:01 عصر
خوب بهترین راه اینه شماره ای که به کاربر نمایش داده شده لحظه ی ثبتم برسی بشه که ایا تو بانک هست یا نه و به کاربر قبل از شروع کار توضیح بدین که این شماره ممکنه به علت تداخل تغییر کنه یه حتی message box کنین لحظه ی ثبت که این رکورد با این شماره ثبت شد نه اونی که شما دیدن

salibsatan
شنبه 02 خرداد 1394, 14:08 عصر
یک فیلد بیت به جدول اضافه کنید.وقتی کسی داشت ادیت می کرد یعنی وارد قسمت ادیت شد مقدار فیلد رو یک کنید و موقع ورود چک کنید اگر فیلد یک بود، نزاره کس دیگه ای وارد قسمت ویرایش بشه

winner1
شنبه 02 خرداد 1394, 14:12 عصر
یک فیلد بیت به جدول اضافه کنید.وقتی کسی داشت ادیت می کرد یعنی وارد قسمت ادیت شد مقدار فیلد رو یک کنید و موقع ورود چک کنید اگر فیلد یک بود، نزاره کس دیگه ای وارد قسمت ویرایش بشه
یعنی میخواد جلوی ادیت رو بگیره یا ؟ یا یه شماره مکسی که به کاربر نشون میده موقع ثبت کسه دیگه اون و استفاده نکنه؟:متفکر:

salibsatan
شنبه 02 خرداد 1394, 14:31 عصر
یعنی میخواد جلوی ادیت رو بگیره یا ؟ یا یه شماره مکسی که به کاربر نشون میده موقع ثبت کسه دیگه اون و استفاده نکنه؟:متفکر:

راه حلی که گفتم برای این هست که دونفر همزمان نتونن یک رکورد رو ویرایش کنن.فکر کنم یه همچین چیزی می خواست.

jaleel2007
یک شنبه 03 خرداد 1394, 08:42 صبح
فکر کنم باید ترکیبی از این دو روش را استفاده کنم یا در temp ذخیره کنم بعد از ثبت نهایی شماره اصلی (peimary key) را بدهم ؟ آیا الگوریتمی از آن هست؟

Javad_raouf
یک شنبه 03 خرداد 1394, 09:25 صبح
برای ویرایش همون که دوستان گفتن منم استفاده می کنم
اما برای ثبت شما اگه PK خودتو Identity بزاری مشکلت حله
نیازی هم به جدول Temp نیست
اگر برات مهم نیست که کاربر قبل از ثبت نهایی PK رو بدونه چنده کارت راحته بعد از ثبت Pk رو نشون بده
اگرم می خوای قبل از ثبت نهایی Pk رو ببینه به محض ورود کاربر به پنجره ثبت یک رکورد در جدول درست کن با مقادیر NULL و PK رو در همون فرم به کاربر نشون بده
و وقتی کاربر ثبت نهایی رو زد همون رکورد رو ویرایش کن