2012-01-24 57 views
2

所以我有一個製表符分隔的文件,我需要通過sqlbulkinsert插入。我有我的所有代碼編寫和工作正常,但是當我達到一個值分配一個整數或小數沒有輸入值,我的代碼因爲分配不正確(一個十進制值爲空)而中斷...我怎麼能處理這個(事情?如何處理數據表的數據行的空值

dataRow["variableName"] = splitString[IndexValue]; // decimal coming in blank because this column doesn't have a decimal assigned (and not required) 

謝謝!

編輯:我知道我可以在賦值之前測試null的值,但不希望使用if檢查是否有另一種方法來施放它。

使用三元運算符結束。

dataRow["variableName"] = (String.IsNullOrEmpty(splitString[IndexValue])) ? Convert.ToInt32(splitString) : 0; 
+0

因此,'splitString [IndexValue] == null'和'dataRow [「variableName」]'想要一個'De cimal'價值? – Yuck

+0

是splitString一個對象數組返回null在給定的索引,一個字符串數組返回string.Empty等? –

+0

對你們倆都是。 –

回答

1

分配之前做一個簡單的檢查:

if (varT != null) 
//perform assignment 
else 

更改VART你正在檢查對值的名稱。 你也需要告訴我們什麼是空的,什麼不是很難說你的問題的內容。是splitString [IndexValue] null還是數據行?

根據您的意見,您可以利用的條件運算符:

return varT != null ? varT : 1.0;

或者像其他人所說的,你可以使用??操作http://msdn.microsoft.com/en-us/library/ms173224.aspx

+0

@Yuck我知道,它是僞代碼:-p – JonH

+0

是的,我寧願不這樣做,因爲我有大量的變量,我正在轉移..希望縮短版本。 –

+0

@Sean所以你可以使用條件運算符'return varT!= null? varT:1.0;' – JonH

0

可避免與下面的代碼這個問題:

if (splitString[IndexValue] != null) 
    dataRow["variableName"] = splitString[IndexValue]; 
+0

如果splitString [IndexValue]是一個空字符串呢? – 2012-01-24 19:11:05

+0

使用string.IsNullOrEmpty() – Servy