下面的代码:如何抢占试图将DBNull分配给int?
foreach (DataRow fillRateDataRow in dtFillRateResults.Rows)
{
. . .
var frbdbc = new FillRateByDistributorByCustomer
{
ShortName = fillRateDataRow["ShortName"].ToString(),
Unit = fillRateDataRow["Unit"].ToString(),
CustNumber = fillRateDataRow["Custno"].ToString(),
MemberItemCode = fillRateDataRow["MemberItemCode"].ToString(),
Qty = Convert.ToInt32(fillRateDataRow["Qty"]),
QtyShipped = Convert.ToInt32(fillRateDataRow["QtyShipped"]),
ShipVariance = fillRateDataRow["ShipVariance"].ToString(),
CWeek = fillRateDataRow["CWeek"].ToString(),
PAItemCode = fillRateDataRow["PAItemCode"].ToString(),
PADescription = fillRateDataRow["PADescription"].ToString(),
TransactionType = fillRateDataRow["TransactionType"].ToString(),
SplitCase = fillRateDataRow["SplitCase"].ToString(),
ReasonCode = fillRateDataRow["ReasonCode"].ToString(),
ReasonDescription = fillRateDataRow["ReasonDescription"].ToString(),
CompanyName = fillRateDataRow["CompanyName"].ToString()
};
...在一个伟大的失败一次,而用“对象不能从DBNull转换到其他类型的 例外来源:mscorlib程序 异常堆栈跟踪:在System.DBNull。 System.IConvertible.ToInt32(的IFormatProvider提供商) 在System.Convert.ToInt32(对象的值)“
如此看来,无论是数量还是QtyShipped有时为DBNull(字符串之中的海洋中唯一INT瓦尔斯)。
有没有办法说“如果它是DBNull,将0赋值给var”并从而避免异常?
我看到了你的有用编辑用于第二,然后它显然是由RIGO,谁不是一星磨灭......然后TyCobb恢复。编辑混乱正在进行中! –
@ B.ClayShannon他确实修复了一个编译错误,但是,这就是为什么我批准他的编辑。谢谢! – dasblinkenlight