PDA

View Full Version : دسترسی به مقدار checkbox



bahar_engineer
شنبه 14 شهریور 1388, 16:13 عصر
سلام

من بانکم اکسسه و چند تا فیلد توی بانک دارم که توی فرم با چک باکس مقدار می گیرم و نوع اونها هم در بانک yes/no هست

حالا وقتی بانک رو با اکسس باز می کنم اون فیلدها زیرشون یک چک باکس هست که همه رو چک زدم

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

چطور می تونم به مقادیر چک باکس ها دسترسی پیدا کنم تا بتونم توی شرط Sql چکشون کنم؟

اینم کدم




...
...
...
con.Open();
dr = cmd2.ExecuteReader();
if (dr["news"].ToString() is checked)
Button2.Visible = true;
توی خط قرمز رنگ چند نمونه تست کردم اما همش خطا می ده و می گه مقداری وجود نداره


اینارو تست کردم


if (dr["news"].ToString() == true)
if (dr["news"].ToString() == "yes")
خطاش هم اینه



No data exists for the row/column.


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

alireza_s_84
شنبه 14 شهریور 1388, 17:26 عصر
سلام اینجوری بنویسید:



if (dr["news"] == true)



موفق باشید
مشکلی بود مطرح کنید باز هم راهنمایی میکنم
alireza.salemian@gmail.com

bahar_engineer
شنبه 14 شهریور 1388, 17:40 عصر
ممنونم کد شما هم اما خطا می ده

اینم امتحان کرده بودم

خطاش اینه

می گه نمی شه یه آبجکت رو با یه متغیر بولین مقایسه کرد

Mahdi-563
یک شنبه 15 شهریور 1388, 01:46 صبح
من این کد را برای یک لیست کشویی نوشتم ولی با کمی تغییر قابل استفاده است:

DropDownList chk = new DropDownList();
for (i = 0; i <= GridView1.Rows.Count - 1; i++)
{
chk = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1");
Rank = chk.SelectedIndex;
QID = int.Parse(GridView1.Rows[i].Cells[0].Text);
ta_Pool.Insert(QID, osID, Rank);
}

bahar_engineer
یک شنبه 15 شهریور 1388, 10:01 صبح
من این کد را برای یک لیست کشویی نوشتم ولی با کمی تغییر قابل استفاده است:

DropDownList chk = new DropDownList();
for (i = 0; i <= GridView1.Rows.Count - 1; i++)
{
chk = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1");
Rank = chk.SelectedIndex;
QID = int.Parse(GridView1.Rows[i].Cells[0].Text);
ta_Pool.Insert(QID, osID, Rank);
}


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

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

Mahdi-563
یک شنبه 15 شهریور 1388, 10:30 صبح
این کدی که شما دادین برای چک باکسی هست که توی گرید ویو باشه اما من می خوام از بانکم بازیابی کنم مقدار چک باکسو

یعنی کسی تا به حال توی بانکش مقادیر چک باکس اضافه نکرده ؟که بخواد مقادیرشو بازیابی کنه ؟
نه عزیزم اگه دقت کنی این کد می گرده و کل چک باکس های رو فرم را پیدا می کنه و مقدارش رو تو متغییر ذخیره می کنه
و مقدار انتخاب شده را در بانک ذخیره می کنه

bahar_engineer
یک شنبه 15 شهریور 1388, 10:46 صبح
من تو بانک ذخیره کردم

می خوام بازیابی کنم ... چطور می تونم چک کنم که آیا فیلد news برای فلان کاربر تیک خورده یا نه ؟

همین ...

Mahdi-563
یک شنبه 15 شهریور 1388, 10:55 صبح
DropDownList chk = new DropDownList();
chk = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1");
bool var = chk.SelectedIndex;

bahar_engineer
یک شنبه 15 شهریور 1388, 10:56 صبح
ببینید این تصویری از اطلاعات بانک منه

نوع فیلدها yes/no هست که فرمتشو true/false گذاشتم توی اکسس

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

اگه فلان کاربر برای فیلد ac_news تیک داره یعنی مجازه اخبار رو ببینه ... اگه تیک داره صفحه خبر براش باز بشه
اگه نه غیر فعال بشه

توی بانک معمولاً با oledbreader اطلاعات بانک رو می خونن با همون کدی که اول تاپیک نوشتم

اما اینجا نمی شه

خطا می ده ... شما اطلاعات چنین بانکی رو چطور بازیابی می کنین؟ عکسش ضمیمه است

Mahdi-563
یک شنبه 15 شهریور 1388, 11:19 صبح
ای بابا زود تر بگو
اول باید رکودت را بخونی حالا اطلاعات این فیلد را بریز تو یه متغییر بولی بعد اگه درست بود نمایش بده و در غیر اینصورت visibel را False کن

Mahdi-563
یک شنبه 15 شهریور 1388, 11:50 صبح
این کد فکر کنم درست باشه
ولی این روش اصولی نیست

if (dr["news"].ToString() == "true")


if (bool(dr["news"].ToString()))

bahar_engineer
یک شنبه 15 شهریور 1388, 12:34 عصر
جناب Mahdi-563 ممنون از توجهتون

اما فکر کنم اصلا ویژوال استدیو خرابه چون داره کم کم ارور های عجیب غریب می ده

دارم دوباره نصب می کنم

alireza_s_84
یک شنبه 15 شهریور 1388, 16:00 عصر
ممنونم کد شما هم اما خطا می ده

اینم امتحان کرده بودم

خطاش اینه

می گه نمی شه یه آبجکت رو با یه متغیر بولین مقایسه کرد

سلام:
خوب اینجوری بنویسید:



if ((bool)dr["news"] == true)