我有一個SSIS包,我編程和我的腳本組件不會允許空列輸入。我已經檢查了這個框以保留平面文件源組件中的空值。我的程序運行良好,直到我的腳本組件出現錯誤「列有空值」(超級模糊,我知道)。當前引發錯誤的列是「int」值列,用於我的腳本中的聚合。SSIS腳本組件,允許空值
我可以使空值爲0或說「NULL」,但我寧願留下空白。
我使用SQL Server BIDS 2008
我有一個SSIS包,我編程和我的腳本組件不會允許空列輸入。我已經檢查了這個框以保留平面文件源組件中的空值。我的程序運行良好,直到我的腳本組件出現錯誤「列有空值」(超級模糊,我知道)。當前引發錯誤的列是「int」值列,用於我的腳本中的聚合。SSIS腳本組件,允許空值
我可以使空值爲0或說「NULL」,但我寧願留下空白。
我使用SQL Server BIDS 2008
是因爲SSIS涉及的數據庫這麼多,不希望花費大量的時間DB NULL和C#NULL之間的區別,他們爲每一個布爾屬性使用命名約定(columnname)_IsNull在Buffer中輸入列。你可以閱讀關於MSDN的更多信息。
因此,您必須使用這些緩衝區列來確定值是否爲空,然後執行您嘗試使用組件中該列的任何操作。
因此,像
if (!Row.MyColumn_IsNull) {
//do something }
else {
//do something else, or nothing, etc.
}
謝謝你,凱爾!這是我原本想做的事情,在錯誤發生之前似乎無法捕捉輸入,最後我使用了三元操作,作爲另一個答案在這裏。 – user2471943
您的錯誤是否發生在C#代碼的某處?當你有一個數據類型爲int的數據庫列時,它有點瘋狂,它允許空值。在C#土地你必須使用int?因爲當你需要接受空值時,這個值就是int。否則,已經提到的方法是一個很好的方法。
是的,這是也是我嘗試過的另一種選擇,謝謝! – user2471943
請張貼足夠的組件代碼,以便我們可以進行猜測。 –
與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 從帖子中刪除) –