C# Convert.toDouble()为空值时报错
如题。
C# code
#region 实现最后一行合计函数
public void TotalRow(DataGridView dataGridview1)
{
DataGridViewRow dgr = dataGridview1.Rows[dataGridview1.Rows.Count - 1];
dgr.ReadOnly = true;
dgr.DefaultCellStyle.BackColor = System.Drawing.Color.Khaki;
dgr.Cells[0].Value = "合计";
double db;
for (int i = 0; i < dataGridview1.Rows.Count - 1; i++)
{
try
{
db = Convert.ToDouble(dgr.Cells[4].Value) + Convert.ToDouble(dataGridview1.Rows[i].Cells[4].Value ??1);
dgr.Cells[4].Value = db.ToString("#0.00"); }
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
}
#endregion
datagridview1控件最后一行取合计,累计加第五列的数据,可当单元格无值的时候会提示“输入字符串的格式不正确”,请教各位大侠。
------解决方案-------------------- for (int i = 0; i < dataGridview1.Rows.Count - 1; i++)
{
try
{
if(String.IsNullOrEmpty(dgr.Cells[4].Value.ToString()))
{
MessageBox.Show("数据为空!");
return;
}
db = Convert.ToDouble(dgr.Cells[4].Value.ToString()) + Convert.ToDouble(dataGridview1.Rows[i].Cells[4].Value ??1);
dgr.Cells[4].Value = db.ToString("#0.00"); }
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
------解决方案--------------------
------解决方案--------------------先对dgr.Cells[4].Value做非空验证
再对它进行转换操作
------解决方案--------------------先对dgr.Cells[4].Value做非空验证
然后再对它进行转换操作
------解决方案--------------------
public void TotalRow(DataGridView dataGridview1)
{
DataGridViewRow dgr = dataGridview1.Rows[dataGridview1.Rows.Count - 1];
dgr.ReadOnly = true;
dgr.DefaultCellStyle.BackColor = System.Drawing.Color.Khaki;
dgr.Cells[0].Value = "合计";
double db;
for (int i = 0; i < dataGridview1.Rows.Count - 1; i++)
{
try
{
//
db = Convert.ToDouble(dgr.Cells[4].Value==""? 0:dgr.Cells[4].Value) + Convert.ToDouble(dataGridview1.Rows[i].Cells[4].Value==""?0:dataGridview1.Rows[i].Cells[4].Value);
dgr.Cells[4].Value = db.ToString("#0.00"); }
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
}
------解决方案-------------------- for (int i = 0; i < dataGridview1.Rows.Count - 1; i++)
{
try
{
double value1="";
double value2="";