簡體   English   中英

有沒有一種方法可以將LIST(of String)與SQL Server數據庫集成在一起?

[英]Is there a way to integrate LIST(of String) with SQL Server database?

過去,當我們需要排除屬於某個類別的成員時,我們使用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

對於我們來說,這一直很出色。

這次,名單超過了200,000。 太多,無法手動包含在下面的列表中。

是否可以將列表與SQL Server數據庫集成?

也許,有沒有一種方法可以使用存儲的proc來處理此問題,並通過asp.net應用程序發出相同的排除消息?

我們的應用程序是用vb.net編寫的,但我對我可以轉換為vb.net的任何C#解決方案感到非常滿意

能否在SQL Server中像wildcard一樣使用generic.list控件?

例如,在SQL Server中,我們可以說,如果組LIKE'KT%',則顯示消息。

LIKE可以用於generic.list控件嗎? 在此先感謝。

我嘗試以自己的方式提出問題:
您有類似的查詢

select * form TableName where Field in ('ML02A', 'ML02B', 'ML03', ...)

由於不確定的原因,該值的集合在數據庫中的程序no中,並且列表非常長,這會導致查詢變慢。

對於類似的情況,我正在使用臨時表和SqlBulkCopy類 (代碼應在編號列表之后,但格式不正確)。

Dim BulkData As SqlBulkCopy
BulkData = New SqlBulkCopy(cn)
BulkData.DestinationTableName = mDBTableName
BulkData.WriteToServer(mTableToTransfer)
  1. 為數據mDBTableName創建一個表(對於服務器高速緩存永久性的使用要比臨時-#好)
  2. 創建DataTable結構相同
  3. list中的DataTable放入數據list mTableToTransfer
  4. 轉移到服務器
  5. 使用表聯接運行查詢

如果表結構不匹配,則可以使用BulkData.ColumnMappings.Add

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM