2013-07-11 35 views

回答

1

您已经发现问题,这始终是一个好的开始。你提到的速度问题也是因为字符串连接使用了大量的内存 - 我认为,一旦你达到了第三或第四个连接,StringBuilder变得更有效率。

虽然我没有任何基准测试,但从架构视图来看,我的偏好当然是转向编写COM组件来处理数据库操作。编译的应用程序可以提高速度,以及共享数据库连接等附加功能,您将从中受益。另外,如果您最终希望转向更现代化的开发平台,它将允许您开始为将来的开发构建一个良好的数据模型;如果计划和仔细编写,您可能会发现大量的代码可以重复使用,并且您还有机会介绍开发实践,例如TDD,那个经典的ASP不[很容易]支持。

</personal-opinion>,显然。

+1

感谢您的答复,我也刚刚发现[这个MSDN文章](http://msdn.microsoft.com/en-us/library/ms972323.aspx),它回答了我的问题。 – Grokodile

3

您还可以使用.NET System.IO.StringWriter类(是的,这是有可能在传统的ASP!)

我用它在这个StringBuffer类:

Class StringBuffer 

    Dim buf 

    Private Sub Class_Initialize() 
     Set buf = CreateObject("System.IO.StringWriter") 
    End Sub 

    Private Sub Class_Terminate() 
     Set buf = Nothing 
    End Sub 

    Public Sub Append(ByVal strValue) 
     If Not IsNull(strValue) Then 
     buf.Write_12 CStr(strValue) 
     End If 
    End Sub 

    Public Sub AppendLine(ByVal strValue) 
     buf.Write_12 strValue & vbCRLF 
    End Sub 

    Public Function ToString() 
     ToString = buf.GetStringBuilder().ToString() 
    End Function 

End Class 
+0

45秒下降到1.1秒,优秀的一段代码:) – silver

+0

我知道这是老驴,但它与我正在处理的代码非常相关。 你能举一个如何使用这个例子吗? 我假设你在页面上用你的代码添加了这个类,但你会如何使用它? 例如,如何将“string”&variable&“string”更改为此方法? – elboffor

+0

@elboffor: '设定SB =新StringBuffer' 'sb.Append( “串”)'' sb.Append(可变)'' sb.Append( “串”)'' S = sb.ToString ()' –

相关问题