PDA

View Full Version : سوال: مشکل در DataGridViewCellFormat



voice.of.silence
دوشنبه 13 اسفند 1397, 06:55 صبح
سلام دوستان:
من می خوامم که در datagridview اگر true بود lمذکر و در غیر این صورت مونث نمایش داده شود. اما با خطا رو به رو می شم.

private void DGV_EmployeeList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
try
{
if (e.ColumnIndex == 4)
{
if (e.Value.ToString() == "True")
{
e.Value = "مذکر";


}
else
{
e.Value = "مونث";
}
//end of if staitment.


}
//end of if staitment.


}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
FileLogger.Log(ex.ToString());
}
}

پیام خطا:

با سپاس فراوان

jafarpalideh
دوشنبه 13 اسفند 1397, 07:16 صبح
به جای True و False از 1 و صفر استفاده کنید و ببینید جواب میده ؟؟؟؟

rezayeman
دوشنبه 13 اسفند 1397, 12:58 عصر
سلام
خطا خوانا نیستش
ولی پیشنهاد من اینه که از تو خود query با یک دستور case اینکارو انجام بدی.
راه دیگه هم اینه که یک ستون از نوع text اضافه کنی و مقدار مونث یا مذکر رو توی این ستون بریزی و ستون boolean مخفی کنی

hamid_hr
دوشنبه 13 اسفند 1397, 13:46 عصر
مشکل اینه که اگه مقدار داخی سلول true , false باشه گرید ویو یک سلول چک باکس می سازه و شما نمیتونی بهش مقدار مونث و مذکر بدی
راه بهتر همونه که دوستون گفتند
از داخل کوئری تفکیک کنید

jafarpalideh
دوشنبه 13 اسفند 1397, 14:01 عصر
مثل کد زیر در SQL.



SELECT dbo.TblStop.StopId, dbo.TblStop.StopText, dbo.TblStopType.StopTypeName,
(SELECT CASE WHEN StopActive = 1 THEN 'در جریان' WHEN StopActive = 0 THEN 'غیر فعال' END AS Expr1) AS Vazeiat, dbo.TblStop.StopActive, dbo.TblStop.StopType_Id
FROM dbo.TblStop INNER JOIN
dbo.TblStopType ON dbo.TblStopType.StopTypeId = dbo.TblStop.StopType_Id

alexmcse
دوشنبه 13 اسفند 1397, 14:29 عصر
سلام دوستان:
من می خوامم که در datagridview اگر true بود lمذکر و در غیر این صورت مونث نمایش داده شود. اما با خطا رو به رو می شم.

private void DGV_EmployeeList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
try
{
if (e.ColumnIndex == 4)
{
if (e.Value.ToString() == "True")
{
e.Value = "مذکر";


}
else
{
e.Value = "مونث";
}
//end of if staitment.


}
//end of if staitment.


}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
FileLogger.Log(ex.ToString());
}
}

پیام خطا:

با سپاس فراوان



دوست عزیز شما بجای اینکه True یا False چک کنید زمانی که اطلاعات را درون دیتابیس ذخیره میکنید بجای ترو ذخیره کنید مذکر و بجای فالس ذخیره کنید مونث
اینطور کار شما راحت تر است