2010-09-10 76 views
0

XML文檔 - 空處理

xmlDoc.DataSet.Tables["<tablename>"].Columns 

我通過DataColumn想通過那些列循環,對說這xmlDoc有10項和5個爲空,則循環應該發生的非空條目只要。

有什麼想法?

回答

0
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) 
{ 
    DataColumn col = ds.Tables[0].Columns[i] != null ? ds.Tables[0].Columns[i] : "<some default value>"; 
    if (col != "<some default value>") 
        // do something 
} 
+0

我不斷收到這個,System.Web.Services.Protocols.SoapException:服務器無法處理請求。 ---> System.Exception:對象不能從DBNull轉換爲其他類型。任何想法? – Sharpeye500 2010-09-10 20:34:27

+0

我真的沒有一個地方來測試這個,但你試過這個嗎? - 更新了我的答案。 – mledbetter 2010-09-10 21:00:25

+0

此外,請確保允許相關數據集中的列允許該列的空值。您正嘗試將soap服務中的xml文檔複製到強類型數據集中。確保數據集已被顯式設置爲允許任何您認爲可能具有空值的列的空值。 – mledbetter 2010-09-10 21:03:35

2

如何:

foreach (DataColumn column in xmlDoc.DataSet.Tables[""].Columns) 
{ 
    if (column != null) 
    { 
     // your code here 
    } 
} 
+0

是的,我確實有這樣的代碼,但我GET-> System.Exception的:對象不能從DBNull轉換爲其他類型。 – Sharpeye500 2010-09-10 20:24:12

+0

謝謝,它是否檢查其他5列是否有空值,正在獲取DBNULL轉換異常。 – Sharpeye500 2010-09-10 20:54:20

+0

@Sharpeye500那麼你會想用'if(column!= DBNull)'代替@Andrew Hare不想劫持一個好的答案 – msarchet 2010-09-10 21:02:46