110,502
社区成员
发帖
与我相关
我的任务
分享
info.P03_1400PassRate = row[9].ToString() == "" ? null : Convert.ToDouble(row[9].ToString());
info.P03_1200Input = row[10].ToString() == "" ? null : Convert.ToDouble(row[10].ToString());
info.P03_1200Rework = row[11].ToString() == "" ? null : Convert.ToDouble(row[11].ToString());
可空类型在三元后面强转为什么会报错?
无法确定条件表达式类型,因为<null>和double之间没有稳式转换!
info.P03_1400PassRate = row[9].ToString() == "" ? (double?)null : Convert.ToDouble(row[9].ToString());
或
info.P03_1400PassRate = row[9].ToString() == "" ? null : (double?)Convert.ToDouble(row[9].ToString());
都可以
info.P03_1200Input = row[10].ToString() == "" ? null : Convert.ToDouble(row[10].ToString());
//P03_1400PassRate、P03_1200Input、P03_1200Rework这三个值看你的代码应该是Double类型吧。
//直接用TryParse转换就好,,,如果row里面的值为空,或是报错那返回初始值,0.。。。double的变量值是不能为null的。
double P03_1400PassRate = 0;
double.TryParse(row[9].ToString(), out P03_1400PassRate);
double P03_1200Input = 0;
double.TryParse(row[10].ToString(), out P03_1200Input);
double P03_1200Rework = 0;
double.TryParse(row[11].ToString(), out P03_1200Rework);
info.P03_1400PassRate = P03_1400PassRate;
info.P03_1200Input = P03_1200Input;
info.P03_1200Rework = P03_1200Rework;
info.P03_1400PassRate = row[9].ToString() == "" ? 0 : Convert.ToDouble(row[9].ToString());