PDA

View Full Version : سوال: چک شدن checklistbox با توجه به دیتابیس



mohammad1314
چهارشنبه 29 مهر 1394, 19:37 عصر
سلام دوستان

من یک checklistbox در برنامم دارم که هیچکدوم از آیتم هاش تیک نخوردن وبرای مثال آیتم های اون شامل این اسم ها هست : علی _ حسن _ جواد _ مرتضی _ غلام

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

حالا من میخوام با کلیک بر روی یک button در برنامه، اسم هایی که در تیبل ذخیره شدن ، در checklistbox فقط تیک بخورن.

هرچی سرچ کردم، هیچ جوابی برای این سوالم پیدا نکردم. فقط همه سایت ها نحوه اضافه شدن اطلاعات از دیتابیس به checklistbox رو گفته بودن.

اما همونطوری که گفتم ، من اون اسم ها رو در chcklistbox دارم و فقط میخوام با توجه به اسامی دیتابیس، اون ها تیک بخورن.

ممنون میشم راهنماییم کنین.

am_al_59
چهارشنبه 29 مهر 1394, 19:47 عصر
checklistbox چه کنترلی میشه؟ یعنی مجموعه ای از چک باکس ها در یک container هست ؟ اگر اینه
یک راهش اینه که با یک حلقه foreach لیست از چک باکس هات رو کنترل کنی و برای هریک توی دیتابیست بگردی بیبینی اسم هست یا نه و اگر بود تیک بزنی
راه دیگش اینه که همین کارو برعکس بکنی یعنی به ازای هر رکورد توی دیتابیست کل لیست چک باکس هارو چک کنی و اونایی که هستن رو تیک بزنی

ببین کدوم روش مناسبه اگر توی کدش مشکل داشتی همونو برات بنویسم

mohammad1314
جمعه 01 آبان 1394, 00:42 صبح
checklistbox چه کنترلی میشه؟ یعنی مجموعه ای از چک باکس ها در یک container هست ؟ اگر اینه
یک راهش اینه که با یک حلقه foreach لیست از چک باکس هات رو کنترل کنی و برای هریک توی دیتابیست بگردی بیبینی اسم هست یا نه و اگر بود تیک بزنی
راه دیگش اینه که همین کارو برعکس بکنی یعنی به ازای هر رکورد توی دیتابیست کل لیست چک باکس هارو چک کنی و اونایی که هستن رو تیک بزنی

ببین کدوم روش مناسبه اگر توی کدش مشکل داشتی همونو برات بنویسم


checklistbox یک لیست باکس هستش که آیتم های داخلش چک باکس دارن و میتونیم اون ها رو انتخاب کنیم.

حالا من روش دوم شما رو نیاز دارم ،
یعنی به ازای هر رکورد توی دیتابیس، کل آیتم های لیست چک باکس رو چک کنم و اونایی که هستن ، تیک بخورن.

ولی هر کاری با حلقه foreach کردم نشد.

کدهای زیر ، دستورات select هستن ولی بعد از این پرس و جو ، دیگه نمیدونم چیکار کنم !!!



SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da = new SqlDataAdapter("select CustomerTools from Tbl_CustomerTools WHERE CustomerName=N'" + "1" + "'", con);
dt.Clear();
da.Fill(dt);


ممنون میشم کمکم کنین.

am_al_59
جمعه 01 آبان 1394, 12:52 عصر
من اون کنترل رو تا حالا ندیده بودم:متعجب:
این دستورات با همین کنترل CheckBoxList که تازه دیدم :بامزه:

foreach (DataRow item in dt.Rows)
for (int i = 0; i < checkedListBox1.Items.Count; i++)
if (checkedListBox1.GetItemText(checkedListBox1.Items[i]) == item["CustomerName"].ToString())
checkedListBox1.SetItemCheckState(i, CheckState.Checked);


میخواستم بجای حلقه دوم foreach بزارم اما چیزی برای تشخیص شماره آیتم ندیدم برای همین با for نوشتم که شماره آیتمو داشته باشم

mohammad1314
جمعه 01 آبان 1394, 18:39 عصر
میخواستم بجای حلقه دوم foreach بزارم اما چیزی برای تشخیص شماره آیتم ندیدم برای همین با for نوشتم که شماره آیتمو داشته باشم


دقیقا من هم همین مشکل رو داشتم، چون با foreach فقط شماره اندیس میشد داد.

این کدی رو که گفتین ، امتحان کردم که ارور زیر رو داد :

An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll


Additional information: Column 'CustomerName' does not belong to table .

اسم ستون رو هم درست دادم.
مشکل از کجاست !!

am_al_59
جمعه 01 آبان 1394, 19:42 عصر
Additional information: Column 'CustomerName' does not belong to table .


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