下面的代碼:如何搶佔試圖將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