PDA

View Full Version : سوال: اشکال در برگرداندن مقدار سلولها در DataGridView



OmMiD_MtWo
یک شنبه 20 مهر 1393, 15:22 عصر
با سلام خدمت دوستان عزیز

من میخواستم Propertyهای کلاسم رو با استفاده از DataGridView پُر کنم ولی متاسفانه چون برخی از سلولهای ردیفهای DataGridView دارای مقدار نیستند، هنگام اجرای کد زیر ایراد میگیره! میخواستم از خدمت سوال کنم چه جوری میتونم برای این برگرداندن شرطی بذارم که اگه مقدار سلول، Null بود، صفر رو به جای اون برگردونه؟ ممنون میشم راهنمایی کنید. ایراد از خط دوم هست که وسطای GridView هنگام تبدیل سلول موردنظر به Double چون سلول خالی هست، نمیتونه این کار رو انجام بده؟


foreach (DataGridViewRow row in dtg.Rows)

{
item.Benefit = Convert.ToDouble(row.Cells[1].Value);
item.BarcodeID = Convert.ToInt64(row.Cells[6].Value);
item.NumberOfGoods = Convert.ToInt32(row.Cells[7].Value);
item.Cost = Convert.ToDouble(row.Cells[2].Value);
item.Price = Convert.ToDecimal(row.Cells[3].Value);
}

gerdioz
یک شنبه 20 مهر 1393, 15:45 عصر
foreach (DataGridViewRow row in dtg.Rows)
{
item.Benefit = Convert.ToDouble(row.Cells[1].Value);
if (row.Cells[5].Value != null)
item.BarcodeID = Convert.ToInt64(row.Cells[6].Value);


item.NumberOfGoods = Convert.ToInt32(row.Cells[7].Value);
item.Cost = Convert.ToDouble(row.Cells[2].Value);
item.Price = Convert.ToDecimal(row.Cells[3].Value);
}

Mahmoud.Afrad
یک شنبه 20 مهر 1393, 15:50 عصر
به ازای هر تبدیل باید چک کنی null نباشه.
همین چیزی که گفتی رو پیاده کن. اینقدر سخته!!


if (row.Cells[1].Value == null)
{
item.Benefit = 0;
}
else
{
item.Benefit = Convert.ToDouble(row.Cells[1].Value);
}

hamid_hr
یک شنبه 20 مهر 1393, 15:55 عصر
double dbl;
double.TryParse(row.Cells[1].Value == null ? "0" : row.Cells[1].Value, out dbl);
item.Benefit = dbl;


بقیه هم همینطوری میشه نوشت با tryparse