2013-05-13 77 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 

我与移动,当我有我的笔记本电脑时,我会尽力让它更好

你知道你需要什么,但对我来说,投一切字符串是不是最好的做法...