我正在處理WCF服務,其中我試圖從傳遞給該方法的一個數據表中將數據加載到本地的另一個數據表中數據庫(在本例中,「本地」數據庫是Windows 2003 Server上的SQL Server數據庫)。當我這樣做時,我收到以下錯誤消息:獲取「表<table>的<column>的值爲DBNull」錯誤
「表'ASIVocationalNeeds'中'VocNeedDesc'列的值爲DBNull。」
這實際上沒問題,因爲表ASIVocationalNeeds中的列VocNeedDesc允許空值。最初我只是從傳入的表中將VocNeedDesc的值分配給本地表,但我得到了這個錯誤。所以接下來我更改我的代碼來檢查VocNeedDesc的值是否爲空,如果是這樣,我將string.Empty賦值給值,否則我賦值傳遞值,但仍然收到錯誤消息。我很難過;不知道爲什麼我得到這個錯誤。以下是相關代碼段:
localEmploy.ASIVocationalNeeds.Rows.Add(clientNumber,
caseNumber,
0,
EmploymentDataSet.ASIVocationalNeeds[i].VocNeedType,
(EmploymentDataSet.ASIVocationalNeeds[i].VocNeedDesc == null ? string.Empty : EmploymentDataSet.ASIVocationalNeeds[i].VocNeedDesc));
我正在使用一個打字的數據集,所以我想我會試一試你的建議。我現在在EmploymentDataSet.ASIVocationalNeeds數據表上使用IsVocNeedDescNull()方法。在測試它的工作!但是,當我編譯它並將其放在服務器上時,我仍然得到「ASIVocationalNeeds'表中的列'VocNeedDesc'的值爲DBBull。」錯誤信息。爲什麼在Windows 2003 R2服務器上作爲WCF服務運行有所作爲? – Rod 2012-04-18 19:39:49
沒關係。我發現在一個不同的條件下,我做了同樣的任務,從EmploymentDataSet.ASIVocationalNeeds [i] .VocNeedDesc中拉出來,因爲我不應該這樣做。在我發佈的代碼上方只有15行。哎呀!我怎麼想的? – Rod 2012-04-18 20:08:20