0

UNIONSelectステートメントを使用してFoxProテーブルから動的に生成されたデータテーブルがあります。例えば

SELECT * FROM x UNION SELECT * FROM y UNION SELECT * FROM Z ORDER By v_alue1

これにより、約100行のデータテーブルが生成され、各行には多くのフィールドが含まれ、そのうちの1つはc_olorです。このデータテーブルから、個別の色を選択して、ドロップダウンに出力したいと思います。

ドロップダウンリストのDataTextFieldおよびDataValueFieldとして使用できるプロパティが1つだけあるパブリッククラスColorがあります

Public Class Color
    Private _c_olor As String
    Public Property c_olor() As String
        Get
            Return _c_olor
        End Get
        Set(ByVal value As String)
            _c_olor = value
        End Set
    End Property
End Class

私のlinqステートメントは

Dim colorDs = (From o In dt.Rows Select Color = New With {.c_olor = o("c_olor").ToString().Trim(Nothing).ToLower()}).Distinct().ToList()

ただし、これによって明確な色が得られることはありません。

探しているものを検索して検索しました。これは、明確な結果セットを生成する方法の1つと思われますが、これと他の方法は機能しません。

この方法で色を取得する理由は、同じUNION SELECTデータソースから他のさまざまな個別の値を取得する必要があるため、1回のDB呼び出しを実行して結果をキャッシュし、このキャッシュされたデータソースを使用してすべての個別の値を取得することです。値。

4

1 に答える 1

1

私はVBの専門家ではありませんが、最初に色を作成してから、明確な色を見つけようとしているようです。

この場合、カラークラスにEqualsを実装する必要があります

Dim colorDs =(From o In dt.Rows Select Color = New With {.c_olor = o( "c_olor")。ToString()。Trim(Nothing).ToLower()})。Distinct()。ToList()

または、最初に明確な値を見つけてから、カラーインスタンスを作成することもできます

Dim colorDs = (From o In dt.Rows Select o("c_olor").ToString().Trim(Nothing).ToLower()).Distinct().ToList()

一意の文字列の色のリストを作成する必要があります

于 2010-10-19T11:06:12.957 に答える