PDA

View Full Version : سوال: مشکل و خطای عجیب در دستور اپدیت



atoorpatkan
یک شنبه 27 آذر 1390, 10:50 صبح
سلام دوستام.من یه سایتی طراحی کردم که یه قسمتی داره که دانش آموز میاد شماره دانش آموزیش رو وارد میکنه بر اساس مقطع تحصیلی دروسی که برای اون قابل انتخاب هستش رو تو یه listcheckbox میاره و دانش آموز دروس خودشو انتخاب میکنه و کلید ثبت رو میزنه.اینم شکلش :
http://pic.iran-forum.ir/images/1hdsp5xdpg63cix8s3bj.jpg

خوب من الان میتونم شماره دانش آموزی و مقطع تحصیلی دانش آموز رو با یه دستور ساده insert وارد جدولم کنم. که اینکار رو تو رویداد تغییر متن dropdownlist مقطع انجام میدم. تو جدول منم ستون شماره دانش آموزی و مقطع تحصیلی و نام تک تک دروس وجود داره که میخوام وقتی دانش آموز درسی رو انتخاب کرد مقدار اون درس تو جدولم true بشه ( مقدار پیش فرض همشون false هستش). خوب پس اصولا باید از دستور update استفاده کنم دیگه.الان وقتی کلید button رو میزنم تا دستور اپدیت من اجرا شه یه خطایی میده.عکس کد و خطارو گذاشتم.کسی الان میتونه منو راهنمایی کنه که مشکل خطای دستور من کجاست :
http://pic.iran-forum.ir/images/qktr2gtb0bmai0owu4j.jpg

یه توضیح بدم که اون حلقه foreach میاد checklistbox منو بررسی میکنه تا ببینه کدوم درس انتخاب شده.مرسی.
راستی اینم شکل جدول من هستش :
http://pic.iran-forum.ir/images/ca20lmz9o3du1zfxb44.jpg

atoorpatkan
یک شنبه 27 آذر 1390, 13:40 عصر
من حتی سعی کردم شماره دانش آموزی رو تو یه متغیر ذخیره کنم و از اون متغیر استفاده متن.اما باز نمیشه.ایندفعه میگه : یه همچین ستونی وجود نداره.

fakhravari
یک شنبه 27 آذر 1390, 17:32 عصر
با سلام
متاسفانه خیلی بد توضیح دادین
چرا دستورات به این شکل نوشتید خیلی ناخواناست

A.S.Roma
یک شنبه 27 آذر 1390, 17:49 عصر
ابتدای هر foreach شی ء command را یکبار new ‌کنید.

atoorpatkan
یک شنبه 27 آذر 1390, 20:08 عصر
چجوری باید ابتدای هر foreach شی command رو new کنم.میشه مثال بزنید.مرسی.

A.S.Roma
یک شنبه 27 آذر 1390, 20:57 عصر
راه حل منطقی از نظر memory Mangement اینه که در خط اول foreach اینو بنویسید تا کلا یک object رو بسازید :
command.Parameters.Clear();

دفعه ی اول که تاپیک رو دیدم خیلی کدتون رو دقیق ندیدم و فقط خواستم راهکاری ارائه بدم که کارتون راه بیوفته.

atoorpatkan
یک شنبه 27 آذر 1390, 21:38 عصر
سلام. A.S.Roma خیلی خیلی ازتون ممنون.همین یه خط کد کاره منو راه انداخت. واقعا ممنون. من داشتم به این خط کد که نگاه میکردم تا بفهمم چیکار میکنه فکر کنم این میاد پارامترهای قبلی command رو پاک میکنه و دوباره command ساخته میشه و این باعث میشه خطای قبلی رو نده.درسته؟

A.S.Roma
یک شنبه 27 آذر 1390, 21:52 عصر
شما به یک شی ء sqlCommand در یک حلقه پارامتر اضافه می کردید که این باعث میشد پارامترهای هم اسم ( به طور غیر منطقی ) به آن اضافه شود.
دستور فوق قبل از اجرای هر sqlCommand یکبار پارامتر(های) قبلی را پاک می کند.

همون چیزی که شما گفتید درسته فقط command مجدد ساخته نمیشه فقط پارامترهای اون مجدد SET میشه