【发布时间】:2011-01-28 03:36:47
【问题描述】:
新手需要一些关于逻辑流程的帮助:
我正在使用 Asp.net Ajax 工具包附带的 Auto Complete 扩展器控件。这个扩展程序连接到一个 Web 服务,该服务将运行一个函数,每次用户在文本框中输入内容时都会查询数据库。我们将使用的数据库将有成千上万条记录,所以性能是我所追求的。这是我在网络服务中的功能:
Public Function PatronList(ByVal prefixText As String, ByVal count As Integer) As String()
Dim MyPatrons As New List(Of String)
Dim MyConn = System.Configuration.ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
Dim sqlPatronList As New SqlDataSource(MyConn, "spBarredList " & prefixText)
Dim tblPatronList As System.Data.DataView = sqlPatronList.Select(New DataSourceSelectArguments)
Dim CurPatronRow As Long
Dim MaxPatronRow As Long = tblPatronList.Count
For CurPatronRow = 0 To MaxPatronRow - 1
MyPatrons.Add(tblPatronList.Item(CurPatronRow).Item("FullName"))
Next
Return MyPatrons.ToArray
End Function
“spBarredList”是一个存储过程,当传入 3 个字符时,它在 3 列上执行类似语句。所以这是我的问题:
这样做会更有效,还是只是将所有记录选择到数据集中,将它们添加到数组中,然后搜索数组?每次运行此函数时都会创建一个数据源和列表的新实例,这也很糟糕吗?
提前致谢。
【问题讨论】:
标签: asp.net asp.net-ajax