如何避免任意一行为空时报错 ,任意一行为空,改行数据默认为0 ,程序为double[] data3 = new double[] { Convert.ToDouble(dtNEW.Rows[0]["Q1Count"]), Convert.ToDouble(dtNEW.Rows[1]["Q2Count"]), Convert.ToDouble(dtNEW.Rows[2]["Q3Count"]), Convert.ToDouble(dtNEW.Rows[3]["Q4Count"]) };
时间: 2023-11-29 20:06:24 浏览: 64
你可以在访问每一行的数据时,先判断该行是否存在或该行的数据是否为空,如果不存在或为空,则将其默认值设为0。以下是一个示例代码:
```
double[] data3 = new double[4];
for (int i = 0; i < 4; i++)
{
if (dtNEW.Rows.Count > i && dtNEW.Rows[i]["Q1Count"] != DBNull.Value)
data3[i] = Convert.ToDouble(dtNEW.Rows[i]["Q1Count"]);
else
data3[i] = 0;
if (dtNEW.Rows.Count > i && dtNEW.Rows[i]["Q2Count"] != DBNull.Value)
data3[i] += Convert.ToDouble(dtNEW.Rows[i]["Q2Count"]);
if (dtNEW.Rows.Count > i && dtNEW.Rows[i]["Q3Count"] != DBNull.Value)
data3[i] += Convert.ToDouble(dtNEW.Rows[i]["Q3Count"]);
if (dtNEW.Rows.Count > i && dtNEW.Rows[i]["Q4Count"] != DBNull.Value)
data3[i] += Convert.ToDouble(dtNEW.Rows[i]["Q4Count"]);
}
```
这里使用了一个循环来逐行处理数据,每次处理一行时,先判断该行是否存在或数据是否为空,如果是,则将其默认值设为0;如果不是,则将其转换为double类型并累加到相应的数组元素中。这样,如果任意一行为空,对应的值就会被赋为0,而不会出现异常。如果需要处理其他列,可以按照类似的方式进行处理。
阅读全文