مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
سلام دوستان .میدونم طولانیه ولی خواهش می کنم کمکم کنید الان دو ساعته دنبال راه حلم کلافه شدم به خدا:ناراحت:
من یه سری چک باکس دارم مربوط به امکانات یک ملک درون فرم مربوط به درج یک ملک. مقادیر اولیه همه ی این امکانات را در دیتابیس 0 گذاشتم حالا میخوام هر بار که درج صورت میگیره اگه چک باکسی علامت خورده بود مقدارش به یک تغییر کنه یه تابع نوشتم که آخرین مقدار کلید ذخیره شده رو به string تبدیل می کنه و این مقدار رو پاس میدم به تک تک توابعی که قراره مقدار اون امکانات رو به یک تبدیل کنن در صورتی که چک باکس علامت خورده بود
public string Get_maxcodeemkanat()
{
this.Open();
string sql = "select max(Codeemkanat) from tbl_emkanat";
cmd.CommandText = sql;
dt.Clear();
daa.Fill(dt);
this.Close();
return dt.Rows[0].ItemArray.GetValue(0).ToString();
}
کد بالا رو برای گرفتن آخرین مقدار کلید نوشتم.
public void Set_ab(string a)
{
this.Open();
string sql = "insert into tbl_emkanat(Ab) values(1) where Codeemkanat=@a";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@a",a);
cmd.ExecuteNonQuery();
this.Close();
}
به جای string a هم مقداری که تابع Get_maxcodeemkanat برمی گردونه رو قرار میدم .
موقع اجرا error می گیره.
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
سلام.
متن خطا رو هم بذارید تا ببینیم از کجا خطا میگیره...
پ.ن:این که برای تک تک فیلد ها تابع برای بروز رسانی بسازین فکر جالبی نیست، مگر این که دلیل خاصی داشته باشین.
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
نقل قول:
نوشته شده توسط
Rejnev
سلام.
متن خطا رو هم بذارید تا ببینیم از کجا خطا میگیره...
پ.ن:این که برای تک تک فیلد ها تابع برای بروز رسانی بسازین فکر جالبی نیست، مگر این که دلیل خاصی داشته باشین.
این متن خطا Incorrect syntax near the keyword 'where'.
متاسفانه من با 10 جلسه کلاس سی شارپ که چیز های خیلی ساده تری رو گفته بودن دارم کد می نویسم تا آخر مردادم بیشتر وقت ندارم
به همین دلیل اولین راهی که به ذهنم برسه رو می نویسم که چون هیچی بلد نیستم طولانین!
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
در دستور اینسرت شرط قرار نمی گیره مگر اینکه برای اینسرت از یک select دیگه استفاده بشه
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
سعی کنید کدت هاتونو تو تگ مربوطه قرار بدید تا خوانا بشه
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
نقل قول:
نوشته شده توسط
sohil_ww
سعی کنید کدت هاتونو تو تگ مربوطه قرار بدید تا خوانا بشه
public string Get_maxcodeemkanat() {
this.Open();
string sql = "select max(Codeemkanat) from tbl_emkanat";
cmd.CommandText = sql;
dt.Clear();
daa.Fill(dt);
this.Close();
return dt.Rows[0].ItemArray.GetValue(0).ToString();
}
public void Set_ab(string a) {
this.Open();
string sql = "insert into tbl_emkanat(Ab) values(1) where Codeemkanat=@a";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@a",a);
cmd.ExecuteNonQuery();
this.Close();
}
if (checkBox1.Checked) {
db.Set_ab(db.Get_maxcodeemkanat());
}
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
دو تا کد اول رو تو یه کلاس جداگانه به اسم database قرار دادم بعد پشت دکمه ی ثبت همراه با یه سری کد دیگه کد سوم رو نوشتم
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
insert into tbl_emkanat(Ab) values(1) where Codeemkanat=@a";
همنجور که گفتم ما شرط where تو دستور insert نداری و اگه شما تو دیتا بیست قبلا به اون فیلد مقدار دادی و می خوایش ویرایشش کنی باید از شرط update استفاده کنی پس کئوری شما می شه
update tbl_emkanat set ab=1 where codeemkanat=@a
موفق باشی
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
نقل قول:
نوشته شده توسط
sohil_ww
insert into tbl_emkanat(Ab) values(1) where Codeemkanat=@a";
همنجور که گفتم ما شرط where تو دستور insert نداری و اگه شما تو دیتا بیست قبلا به اون فیلد مقدار دادی و می خوایش ویرایشش کنی باید از شرط update استفاده کنی پس کئوری شما می شه
update tbl_emkanat set ab=1 where codeemkanat=@a
موفق باشی
وای چه اشتباه بزرگی! ممنون
اون error قبلی رفع شد اما کدم کار نمی کنه امکانات با تیک خوردن همون 0 باقی می مونه دستوری که برای تبدیل data table به string نوشتم درسته؟
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
string sql = "select max(Codeemkanat) from tbl_emkanat";
اول از همه این کد بزرگترین مقدارو برمی گردنونه و نه آخرین مقدار و مگر اینکه ساختار بانکتون به این صورت باشه و دوم از همه اینکه من اصلا دقیق نمی دونم می خواید چی کار کنید تو متادتون که خطایی نمی بینم اگه اروروی می ده متن ارور بزارید اگه نه که مرحله به مرحله برنامه رو تست کنید تا متوجه بشید مشکل از کجاست
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
نقل قول:
نوشته شده توسط
sohil_ww
string sql = "select max(Codeemkanat) from tbl_emkanat";
اول از همه این کد بزرگترین مقدارو برمی گردنونه و نه آخرین مقدار و مگر اینکه ساختار بانکتون به این صورت باشه و دوم از همه اینکه من اصلا دقیق نمی دونم می خواید چی کار کنید تو متادتون که خطایی نمی بینم اگه اروروی می ده متن ارور بزارید اگه نه که مرحله به مرحله برنامه رو تست کنید تا متوجه بشید مشکل از کجاست
کد امکاناتم خودش اتومات افزایش پیدا می کنه.
راستش خودمم چند بار موقع کد نوشتن قاطی کردم که دارم چه کار می کنم!
موقعی که ملکو می خوام ثبت کنم اول یه رکورد به جدول امکاناتم اضافه می کنم که همه ی فیلد هاش 0 هست.بعد آخرین کد امکانات رو از طریق تابع اول می گیرم و به عنوان آرگومان ورودی میدم به تابع (Set_ab(string a .
بعد اگه چک باکس تیک خورده بود تابع Set_ab(string a رو صدا میزنم. میشه اگه راه حل دیگه ای میدونین راهنماییم کنین واقعا شرمنده ام ولی چند ساعته درگیر این قسمت هستم.
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
همونطور که گفتین تست کردم برنامه رو و کد مربوط به تابع Get_maxcodeemkanat کار نمی کنه:ناراحت:
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
نقل قول:
نوشته شده توسط
MINA B
همونطور که گفتین تست کردم برنامه رو و کد مربوط به تابع Get_maxcodeemkanat کار نمی کنه:ناراحت:
راه حلی نبود؟ :گریه:
نقل قول: مشکل در تغییر مقادیر آخرین رکورد ذخیره شده در جدول
من دوباره برنامه رو چک کردم تابعم درسته یه مشکلی توی شرط دستور آپدیت کردن کد امکانات وجود داره