2013-05-13 78 views
1

我有一個已經從VB遷移到VB.NET的應用程序。在VB代碼中,Trim函數已經用於數據庫中的值,在很多地方。由於VB Trim可以傳播NULL,所以不會引發錯誤。現在,當代碼遷移到.NET相同Trim函數正在拋出錯誤,因爲它不支持.NET中的NULL傳播。如何解決在單個地方更改我的代碼時出現此問題?如果我必須在所有地方使用Convert.ToString,這將是一件乏味的工作。任何開箱即用的暗示?數據庫是DB2處理對.NET的遷移修剪

Sample: 
    VB: 
    res = Trim(rs("Name").Value) 
    num = Len(rs("Name").Value) 

    Converted VB.NET Code 
    rs("Name").Trim() 
    rs("Name").Length 
+0

u能張貼在VB6的作品,但在VB.NET拋出一個錯誤採樣線? – 2013-05-13 19:18:15

+0

您能否顯示轉換後代碼的片段,讓我們知道您處理的內容?我不認爲這有一個「單一位置」的解決方法,但一個聰明的發現和替換可能會有很長的幫助。 – Kratz 2013-05-13 19:18:34

+0

肯定:RES = TRIM(RS( 「名稱」)值。) NUM = Len6(RS( 「名稱」)值。) – user1672097 2013-05-13 19:19:16

回答

4

DBNull.ToString返回一個空字符串。所以,做一個全球查找/爲

.Trim(

替換爲

.ToString().Trim(

+0

然後我碰了一下,我可以在一個地方嗎? – user1672097 2013-05-13 19:30:23

+1

是的,它會全部結束,但全自動和非常快速的更換。任何特殊的原因,這是不可取的?在轉換過程中,您已經完成了全面替換,這只是另一個補充 – 2013-05-13 19:33:08

0

創建一個模塊,並創建一個公共職能的廣告如下:

Public function IfNull(ByVal oObj as Object, byval oRetVal as Object) as Object 
    If oObj = Nothing orelse oObj = dbvalue.null then 
     Return oRetval 
    End if 

    Try 
     Return oObj.ToString.Trim() 
    Catch ex as exception 
    End try 
End function 

我與移動,當我有我的筆記本電腦時,我會盡力讓它更好

你知道你需要什麼,但對我來說,投一切字符串是不是最好的做法...