PDA

View Full Version : سوال: محدودیت ورود برای 2 مرتبه در سی شارپ



barman.ar16
چهارشنبه 31 خرداد 1396, 14:22 عصر
سلام و درود
من یک برنامه دارم مینویسم برای کیوسک اداره که فیش حقوقی چاپ می کنه
خب توی صفحه اول برنامه کد پرسنلی از فرد گرفته میشه و با توجه به کد پرسنلی وارد شده و با چک کردن از دیتابیس با یک url مربوط به پنل اسم ام اسی که داریم یک کد تایید میفرستیم روی گوشی طرف تا اینطوری فقط خود صاحب فیش بتونه دریافت فیش کنه

خب برای اینکه بخوام جلوگیری کنم که یک فرد در ( طول یک روز ) بیشتر از 2 بار نتونه فیش بگیره به نظرتون چکار باید بکنم ؟؟؟
یعنی در واقع یه طوری چک کنم که اگر این پرسنلی 2 بار فیش چاپ کرد دفعه سوم دیگه با یک هشدار بهش خطا بدیم که دیگه نتونه فیش چاپ کنه هم جهت صرفه جویی در کاغذ و اس ام اس ها و هم برای جلوگیری از شیطنت ها

ممنون میشم اساتید عزیز راهنمایی کنن

مهرداد صفا
چهارشنبه 31 خرداد 1396, 16:26 عصر
سلام.
میتونید یک trigger برای insert روی جدول مورد نظر ایجاد کنید و قبل از ثبت رکورد چک کنید که اگر تا به حال دو بار رکورد با مشخصات مورد نظرتون ثبت شده بود عملیات رو لغو کنید.

barman.ar16
چهارشنبه 31 خرداد 1396, 17:45 عصر
سلام.
میتونید یک trigger برای insert روی جدول مورد نظر ایجاد کنید و قبل از ثبت رکورد چک کنید که اگر تا به حال دو بار رکورد با مشخصات مورد نظرتون ثبت شده بود عملیات رو لغو کنید.

ممنون استاد لطف کردید پاسخ دادید
در خصوص جدول پوزش می خوام شاید توضیحات من ناقص بوده چون من اصلا insert ی انجام نمی دم و فقط اطلاعات رو از جدول می خونم

استاد نمیشه با کمک setting برنامه که جایی برای تعریف متغیر ها هست اینکار رو کرد ... البته فقط به ذهنم اومد نمیدونم اصلا شدنی هست یا نه
ممنون

barman.ar16
پنج شنبه 01 تیر 1396, 13:11 عصر
از اساتید بزرگوار کسی راهنمایی می کنه ؟؟؟
واقعا مستاصل شدم راهی به ذهنم نمی رسه
منتظرم ممنون

Mahmoud.Afrad
پنج شنبه 01 تیر 1396, 17:27 عصر
اگر میخواهید سوابق صدور فیش (اینکه چه شخصی در چه تاریخی به چه تعدادی فیش صادر کرده) را داشته باشید setting مناسب نیست. یا باید از دیتابیس استفاده کنید یا از فایل (که میتونه فایل معمولی، xml و ... ) باشه.
اگر دیتابیس دارید، یک جدول نیاز دارید برای ذخیره و لاگ کردن صدور فیش. در هنگام ثبت چک کنید تعداد فیش هایی که شخص در همان روز ثبت(صادر) کرده چند هست اگر کمتر از 2 بود یک رکورد ثبت و فیش را صادر کنید.

336699
یک شنبه 04 تیر 1396, 13:20 عصر
اگر میخواهید سوابق صدور فیش (اینکه چه شخصی در چه تاریخی به چه تعدادی فیش صادر کرده) را داشته باشید setting مناسب نیست. یا باید از دیتابیس استفاده کنید یا از فایل (که میتونه فایل معمولی، xml و ... ) باشه.
اگر دیتابیس دارید، یک جدول نیاز دارید برای ذخیره و لاگ کردن صدور فیش. در هنگام ثبت چک کنید تعداد فیش هایی که شخص در همان روز ثبت(صادر) کرده چند هست اگر کمتر از 2 بود یک رکورد ثبت و فیش را صادر کنید.

شما در یک جمله دو حرف متناقض زدید :متفکر:

از یک طرف به نامناسب بودن setting برای این کار اشاره کردید و از طرف دیگر استفاده از xml رو مناسب دانستید :متفکر:

خب setting هم کارش همینه دیگه ، بدون نیاز به کد نویسی اضافه ، یک فایل xml میسازه و اطلاعات رو داخلش ذخیره میکنه :لبخند:

Mahmoud.Afrad
یک شنبه 04 تیر 1396, 14:34 عصر
شما در یک جمله دو حرف متناقض زدید :متفکر:

از یک طرف به نامناسب بودن setting برای این کار اشاره کردید و از طرف دیگر استفاده از xml رو مناسب دانستید :متفکر:

خب setting هم کارش همینه دیگه ، بدون نیاز به کد نویسی اضافه ، یک فایل xml میسازه و اطلاعات رو داخلش ذخیره میکنه :لبخند:

گفتم اگر بخواهید سوابق رو نگه دارید بهتره خودتون در دیتابیس یا فایل ذخیره کنید تا قابلیت بکاپ رو هم داشته باشید. ولی settings در مسیری فایل رو ایجاد میکنه که شاید کاربر نتواند بهش دسترسی پیدا کنه.
در هر صورت با دسترسی به فایل های متنی و xml به راحتی میشه محتوا رو دستکاری کرد یا حتی فایل رو پاک کرد و این باعث دور زدن راهکار شما خواهد شد. بهتره یا از دیتابیس استفاده کنید یا اطلاعات رو به صورت رمزنگاری شده در فایل ذخیره کنید.

اگر برنامه شما دارای چند کاربر هست و دارای دیتابیس هست بهتره همه سوابق در دیتابیس که روی سرور و به دور از دسترس کاربران هست ذخیره بشه.