PDA

View Full Version : کم کردن مقدار فیلد درون جدول، در sql با هر بار کلیک روی دکمه



mehdiba3
شنبه 12 مرداد 1392, 18:01 عصر
یک جدول ثبت نام دارم که ظرفیتی براش مشخص کردم مثلا 10 نفر
میخواستم هربار که کاربر روی دکمه ثبت زد بره تو بانک یکی از فیلد ظرفیت کم کنه بعد اوت رو update کنه و ذخیرش کنه
پیشنهاد شما دوستای خوبم چیه؟

mehdiba3
شنبه 12 مرداد 1392, 18:08 عصر
من خودم این به ذهنم رسیده ولی فکر نکنم عملی باشه


private void subcountzarfiyat()
{
string str = "SELECT zarfiyatb-1 as b FROM [term] where class.zarfiyatb >0";

var dr = bnk.exereader(str);


if (dr.Read())
{

{
str = " UPDATE class set zarfiyatb=b where codeclass=" اینجاشو نمیدونم چی بزارم!!!!";

dr.Close();
bnk.ExeNone(str);
dr.Close();

veniz2008
شنبه 12 مرداد 1392, 18:29 عصر
سلام.
میتونی یه راه ساده تر برای این کار انجام بدی. میتونی قبل درج رکورد در این جدول یک count بگیری و تعداد رکوردهای اونو بشماری و بعدش اگر کمتر از 10 بود درج کنی. اینطوری درگیر بحث آپدیت کردن اون مقدار نمیشی. چون شما باید هم زمانیکه درج میکنی اون مقدار رو بروز رسانی کنی و هم موقعی که حذف میکنی اون مقدار رو بروز رسانی کنی ولی اگه از count استفاده کنی دیگه نیازی به آپدیت اون مقدار نیست. روی این موضوع فکر کن ببین اینی که گفتم کارت رو راه میندازه؟ چون من برداشتم این بود که نیازی به اون مقدار نداری و میشه با یک count راش انداخت.
موفق باشی.

mehdiba3
شنبه 12 مرداد 1392, 18:36 عصر
چشم دوست عزیز. شب روش کار می کنم نتیجه رو اعلام می کنم.
منظور شما اینه که بیام SELECT count(zarfiyatb) as b FROM class WHERE zarfiyatb>0 بکنم؟

veniz2008
شنبه 12 مرداد 1392, 18:42 عصر
منظور شما اینه که بیام SELECT count(zarfiyatb) as b FROM class WHERE zarfiyatb>0 بکنم؟
دستور درسته ولی منظور من روی اون جدولی بود که داخلش نمیخوای بیشتر از 10 رکورد ثبت بشه. فرض کن اسم جدولت table_1 باشه.

select count(*) from Table_1
همین.
این دستور تعداد رکوردهای جدولت رو میشماره و یک عدد بهت میده. کافیه قبل از درج رکورد این عدد رو چک کنی و اگر کمتر از 10 بود اونوقت دستور درج رو انجام بدی.