PDA

View Full Version : کمک در مورد datagrid



شهابسلطانی
شنبه 07 دی 1398, 20:36 عصر
سلام دوستان
من یه دیتا گرید دارم که اطلاعات رو از sql دریافت میکنه
توی sql دوتا جدول دارم که مرتبط به هم هستن
حالا این کد رو نوشتم


if (DGVPrLines.CurrentRow.Cells["matLevel"].Value.ToString()!= null)
{
for (int i = 0; i < DGVPrLines.RowCount + 0; i++)//حلقه برای کنترل زیر گروه
{
Boolean val = Convert.ToBoolean(DGVPrLines.CurrentRow.Cells["matStatus"].Value.ToString());
if (val == true)
{
BtnGoUnderGroup.Enabled = true;//اگر زیر مجموعه داشت دکمه فعال شود
BtnGoOnGroup.Enabled = true;
break;//خروج از حلقه
}
if (val != true)
{
BtnGoUnderGroup.Enabled = false;//اگر زیر مجموعه نداشت دکمه فعال نشود
break;
}

}
}






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

لطفا راهنمایی بفرمایید

the king
یک شنبه 08 دی 1398, 11:38 صبح
سلام دوستان
من یه دیتا گرید دارم که اطلاعات رو از sql دریافت میکنه
توی sql دوتا جدول دارم که مرتبط به هم هستن
حالا این کد رو نوشتم


if (DGVPrLines.CurrentRow.Cells["matLevel"].Value.ToString()!= null)
{
for (int i = 0; i < DGVPrLines.RowCount + 0; i++)//حلقه برای کنترل زیر گروه
{
Boolean val = Convert.ToBoolean(DGVPrLines.CurrentRow.Cells["matStatus"].Value.ToString());
if (val == true)
{
BtnGoUnderGroup.Enabled = true;//اگر زیر مجموعه داشت دکمه فعال شود
BtnGoOnGroup.Enabled = true;
break;//خروج از حلقه
}
if (val != true)
{
BtnGoUnderGroup.Enabled = false;//اگر زیر مجموعه نداشت دکمه فعال نشود
break;
}

}
}






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

لطفا راهنمایی بفرمایید
Value اگر null باشه دیگه شی ای نیست که رویش ()ToString اعمال کنید، ()null.ToString قابل اجرا نیست.
اون ()Value.ToString رو با ()Value?.ToString جایگزین کنید، یک ? اضافه میکنید. اون .? با . یک فرقی داره. فرقش اینه که .? یعنی ()ToString رو فقط وقتی اجرا کن که Value ئه null نباشه.
اگر null باشه .? همون null رو برمیگردونه و دیگه ()ToString رو اجرا نمی کنه.