过去,当我们需要排除属于某个类别的成员时,我们使用generic.list控件来执行此操作,如下例所示:
首先,我们进行查询以列出符合特定条件的所有符合条件的用户。
sql="select ... from ourTable where certain conditions are true'
然后,我们列出下面列表中的某些群组,其中任何群组位于该列表中的用户将被排除在参与之外。
Dim listOfGroups = New List(Of String)(
{ _
"ML02A", "ML02B", "ML03", "ML04", "ML05", "ML06", "ML07A", "ML07B", "AP05", _
"AP06", "AP07A", "AP07B", "AP09A", "AP10", "AP12A" _
})
If Not listOfGroups .Contains(txtPre.Text) Then
lblNA.Text = "Members in group<b>" & txtPre.Text & "</b> are not eligible to participate in this event."
End If
这对我们来说一直很美妙。
这一次,名单已超过20万;太多,无法手动包含在下面的列表中。
是否可以将列表与SQL Server数据库集成?
或许,有没有办法使用存储过程处理这个并通过我们的asp.net应用程序发出相同的排他性消息?
我们的应用程序是用vb.net编写的,但对于我可以转换为vb.net的任何c#解决方案我都非常高兴
可以像sql server中的通配符一样使用generic.list控件吗?
例如,在SQL Server中,我们可以说,如果组LIKE'KT%'然后消息。
可以在generic.list控件中使用LIKE吗? 非常感谢。
答案 0 :(得分:0)
我试着按照自己的方式制定问题:
你有一个像
select * form TableName where Field in ('ML02A', 'ML02B', 'ML03', ...)
从一个未指明的原因,数据集在数据库中的程序号中,并且列表很长,导致查询速度很慢。
对于类似的情况,我使用临时表和SqlBulkCopy Class。 (代码应该在编号列表之后但格式化不正确。)
Dim BulkData As SqlBulkCopy
BulkData = New SqlBulkCopy(cn)
BulkData.DestinationTableName = mDBTableName
BulkData.WriteToServer(mTableToTransfer)
mDBTableName
创建一个表(用于永久使用服务器缓存
一个比临时更好 - #)DataTable
list
放到DataTable
mTableToTransfer
如果表格结构不匹配,则可以使用BulkData.ColumnMappings.Add